国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

如何把python最小化安裝在客戶機(jī)上面

2019-11-14 17:27:37
字體:
供稿:網(wǎng)友

因?yàn)橄雵L試在我們的桌面軟件中加入python支持,所以想簡化python的庫,到時(shí)候直接放到客戶機(jī)上面,并且放到我們的目錄下,盡量免去不必要的東西,也不要影響機(jī)子,不過當(dāng)寫好的程序放到測試機(jī)子上后,老是說找不到no module named site,后來看下了代碼,發(fā)現(xiàn)是找不到site這個(gè)庫,這個(gè)庫也是python初始化的時(shí)候需要用到的庫,解決方法:

1.嘗試把我電腦上的python里面的Lib放到客戶機(jī)上程序的目錄,建立一個(gè)python27/lib/,結(jié)果還是失敗

2.lib下的東西放到跟exe同一個(gè)目錄,可以,但是還是誰顯示import pbk_resource錯(cuò)誤,但已經(jīng)可以運(yùn)行python的解釋器了,不過因?yàn)楦?span lang="en-US">exe在同一個(gè)目錄太雜,所以放棄這種方法

 

 

 

后來看了Py_Initialize的代碼,發(fā)現(xiàn)在沒有設(shè)置PYTHONHOME的時(shí)候,python是這樣查找lib:

如下代碼

 

 if (pythonhome == NULL || *pythonhome == '/0') {        if (search_for_PRefix(argv0_path, LANDMARK))            pythonhome = prefix;        else            pythonhome = NULL;    }    else        strncpy(prefix, pythonhome, MAXPATHLEN);

 

1.這個(gè)是當(dāng)pythonhomeNULL的時(shí)候,python的初始化函數(shù)會(huì)調(diào)用search_for_prefix來設(shè)置默認(rèn)的home

 

static intsearch_for_prefix(char *argv0_path, char *landmark){    /* Search from argv0_path, until landmark is found */    strcpy(prefix, argv0_path);    do {        if (gotlandmark(lan dmark))            return 1;        reduce(prefix);    } while (prefix[0]);    return 0;}

 

2.landmark是一個(gè)字符串,里面是lib/os.pygotlandmark主要是測試下當(dāng)年目錄下的是否有lib/os.py

 

/* gotlandmark only called by search_for_prefix, which ensures   'prefix' is null terminated in bounds.  join() ensures   'landmark' can not overflow prefix if too long.*/static intgotlandmark(char *landmark){    int ok;    Py_ssize_t n;    n = strlen(prefix);    join(prefix, landmark);    ok = ismodule(prefix);    prefix[n] = '/0';    return ok;}

 

3.如果沒有,則再往上上找一層目錄,繼續(xù)執(zhí)行2的步驟,直到找到或者prefix[0]0后才會(huì)停止

 

那么我們只要把python27下的lib考到客戶機(jī)上的exe目錄下就可以了

 

把測試程序運(yùn)行一遍以后,正常,接下來就是精簡庫了, 基本上把test和unittest,email之類的庫刪掉就可以了


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙湾县| 宜章县| 宜昌市| 上虞市| 封丘县| 巴彦县| 宁蒗| 盐边县| 揭阳市| 右玉县| 阜城县| 怀集县| 闻喜县| 长丰县| 金门县| 桂阳县| 响水县| 德州市| 唐河县| 安宁市| 榆林市| 雷州市| 潮州市| 七台河市| 太原市| 苍溪县| 建昌县| 新乐市| 丹凤县| 玉林市| 库车县| 平远县| 镇康县| 红桥区| 晋江市| 寿阳县| 南溪县| 梅河口市| 峨眉山市| 图木舒克市| 英超|