創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比埇橋區(qū)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式埇橋區(qū)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋埇橋區(qū)地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。這篇文章主要講解了python虛擬環(huán)境刪除包無法加載的解決方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。
項(xiàng)目開發(fā)一直在docker的虛擬環(huán)境上,遇到了一個問題,就是把虛擬環(huán)境的包刪掉(rm -rf xxx)之后,再重新拷貝一個(跟原來包一模一樣的文件夾)進(jìn)去發(fā)現(xiàn)pycharm再也找不到這個包了,后來在同事的幫助下一步步的解決了這個問題:
解決流程:
1.定位問題
在虛擬環(huán)境下引入這個包:
#進(jìn)入虛擬環(huán)境 source bin/activate #1.進(jìn)入python #2.引入報(bào)錯的包 (xenwebsite-env)[root@aeb02c10de04 xenwebsite-env]# python Python 2.7.3 (default, Nov 22 2012, 09:29:29) [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from pyxlib.flaskext.decorators import with_db_retry # 報(bào)錯:說明當(dāng)前環(huán)境下找不到這個包 Traceback (most recent call last): File "", line 1, in ImportError: No module named pyxlib.flaskext.decorators # 查看當(dāng)前換下所有包的路徑 >>> import sys >>> sys.path ['', '/opt/work/web/xenwebsite/xenwebsite-env/lib64/python27.zip', '/opt/work/web/xenwebsite/xenwebsite-env/lib64/python2.7', /opt/work/web/xenwebsite/xenwebsite-env/lib/python2.7/site-packages/httplib2-0.9-py2.7.egg] #發(fā)現(xiàn)沒有我們路徑,為了驗(yàn)證當(dāng)前包是不是正確,那么把這個路徑加入到當(dāng)前的sys.path 里面來。 >>> sys.path.append('/opt/work/web/xenwebsite/xenwebsite-env/lib/python2.7/site-packages/pyxlib-1.1.dev_r1349-py2.7.egg') # 重新引入這個包看看報(bào)不報(bào)錯 >>> from pyxlib.flaskext.decorators import with_db_retry # 這次沒有報(bào)錯,說明包本身沒有問題,那么應(yīng)該就是當(dāng)前虛擬環(huán)境沒有加載這個包,所以當(dāng)前問題就是怎么讓虛擬環(huán)境來加載這個包:退出python環(huán)境 >>> exit() # 在python里面,xxx.pth 文件是保存包路徑的文件,于是我們想到,當(dāng)前的虛擬環(huán)境下面的.pth文件是不是沒有加載這個,于是先查找這個.pth文件 (xenwebsite-env)[root@aeb02c10de04 xenwebsite-env]# find / -name *.pth /opt/work/web/xenwebsite/xenwebsite-env/lib/python2.7/site-packages/easy-install.pth /opt/work/web/xenwebsite/xenwebsite-env/lib/python2.7/site-packages/setuptools.pth # 發(fā)現(xiàn)2個pth文件,我們打開看看發(fā)現(xiàn),我們的第三方包都在 easy_install.pth 文件里面,而且發(fā)現(xiàn)報(bào)錯的那個包并沒有在這個列表里面: ./setuptools-34.3.3-py2.7.egg ./Flask_Cors-3.0.2-py2.7.egg # 于是就把報(bào)錯的包路徑加入進(jìn)來 ./setuptools-34.3.3-py2.7.egg ./Flask_Cors-3.0.2-py2.7.egg ./pyxlib-1.1.dev_r1349-py2.7.egg # 重新把pycharm 重啟發(fā)現(xiàn)包已經(jīng)可見了,問題解決了