国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 剑河县| 梅河口市| 泾源县| 资源县| 安阳市| 东乡县| 南涧| 靖宇县| 太和县| 威信县| 额尔古纳市| 高阳县| 宝山区| 祁东县| 夏河县| 寿阳县| 清徐县| 来宾市| 金乡县| 监利县| 汕尾市| 乐陵市| 南木林县| 雅安市| 阿拉善左旗| 德州市| 永福县| 九龙城区| 鄢陵县| 沽源县| 汽车| 大宁县| 保德县| 和平区| 三都| 专栏| 泾阳县| 玉山县| 威信县| 开远市| 太原市|