项目开发一直在docker的虚拟环境上,遇到了一个问题,就是把虚拟环境的包删掉(rm -rf xxx)之后,再重新拷贝一个(跟原来包一模一样的文件夹)进去发现pycharm再也找不到这个包了,后来在同事的帮助下一步步的解决了这个问题:
解决流程:
1.定位问题
在虚拟环境下引入这个包:
#进入虚拟环境 source bin/activate #1.进入python #2.引入报错的包 (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 # 报错:说明当前环境下找不到这个包 Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named pyxlib.flaskext.decorators # 查看当前换下所有包的路径 > 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] #发现没有我们路径,为了验证当前包是不是正确,那么把这个路径加入到当前的sys.path 里面来。 > sys.path.append('/opt/work/web/xenwebsite/xenwebsite-env/lib/python2.7/site-packages/pyxlib-1.1.dev_r1349-py2.7.egg') # 重新引入这个包看看报不报错 > from pyxlib.flaskext.decorators import with_db_retry # 这次没有报错,说明包本身没有问题,那么应该就是当前虚拟环境没有加载这个包,所以当前问题就是怎么让虚拟环境来加载这个包:退出python环境 > exit() # 在python里面,xxx.pth 文件是保存包路径的文件,于是我们想到,当前的虚拟环境下面的.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 # 发现2个pth文件,我们打开看看发现,我们的第三方包都在 easy_install.pth 文件里面,而且发现报错的那个包并没有在这个列表里面: ./setuptools-34.3.3-py2.7.egg ./Flask_Cors-3.0.2-py2.7.egg # 于是就把报错的包路径加入进来 ./setuptools-34.3.3-py2.7.egg ./Flask_Cors-3.0.2-py2.7.egg ./pyxlib-1.1.dev_r1349-py2.7.egg # 重新把pycharm 重启发现包已经可见了,问题解决了
原因分析:
正常情况下放置在python的site-package 文件夹下的文件都会被当前的python环境给识别,但是发现一个问题就是虚拟环境下面如果把一个python的安装包(文件夹)删除之后,对应的easy_install.pth 文件就会把这一条记录给移除掉,即便是后面把它给重新复制回来了,虚拟环境也不会把它加载进来(对于虚拟环境来说,自动移除已经删除的目录是没有问题的,因为这样总不会出问题,但是自动添加放入的文件夹会有问题,因为放入的文件夹不一定是python文件),所以如果一个包被删除之后,要重新把它复制进来就需要手动的去修改 easy_install.pth文件,把那个文件夹复制进来。
解决流程:
1.验证当前环境的路径里面有没有我们要使用的包
2.如果有,但是无法使用说明包有问题,删除重新添加
3.如果没有,手动的把包路径append到当前的sys.path里面
4.引入当前包:如果报错把文件夹删除重新导入,如果不报错说明包没有问题
5.解决虚拟环境引用当前包的问题:虚拟环境的 easy_install.pth 路径下添加当前包的路径
补充知识:python删除pipenv安装virtualenv后虚拟环境中的库无法正常使用的解决方案 fitz安装错误解决方案
虚拟环境配置
1.编程环境配置调整
昨晚,编程环境再次出现问题,笔记本电脑上的虚拟环境再次无法正常通过Flask驱动,但是虚拟环境中通过pip3 list依旧可以查看到已经安装的库,但是遗憾的是并没有办法启动这些库。最后一咬牙,直接删除了已经安装的Python,并把之前通过pipenv安装的库全部进行了删除,尽可能的清理掉后,准备全部重新安装库。
windows中安装python库,可以先更换更新源,在当前用户目录下,如我的电脑是 “C:\Users\27496” 下面新增pip.ini 文件,在文件中添加一行
“http://mirrors.aliyun.com/pypi/simple/”
就可以更换python安装各种库到阿里云的更新源上,速度非常快。利用以前下载的3.6.6的安装包,今天在安装时突然又报错,无法正常安装。重新到官网下载,链接地址是:
https://www.python.org/ftp/python/3.6.6/python-3.6.6-amd64.exe
这是可执行的安装包。可以在安装时默认安装pip和添加到PATH路径,避免人工再次去添加。后来发现官网下载太慢了。就直接在cdsn上面重新下载了一个3.6.6的安装包,然后重新安装到D盘,然后又删除了各个虚拟环境下的venv包(早期喜欢用pipenv,现在发现特坑),然后重新把所需要的安装包安装一次,虚拟环境恢复正常,不容易,不容易。
Python fitz库安装的两个坑
fitz使用第一坑
python库安装遇到了很多难题,比如安装fitz库,直接无法正常安装,上网查,
traits"_blank" href="https://www.lfd.uci.edu/~gohlke/pythonlibs/#traits">python各类库whl文件的下载地址,可以直接点击
这里面有所有的离线包可以下载非常全面。到里面找这个
traits"htmlcode">
#依次安装如下包,第一个必须在文件所在目录安装 pip3 install traits‑6.0.0‑cp36‑cp36m‑win_amd64.whl pip3 install fitzfitz使用第二坑
仅仅安装第一坑中的文件后,可以直接通过pip安装fitz,但是,输入import fitz后,会报错,提示No module named ‘frontend'
import fitz
很奇怪是吧, 我也很奇怪,明明安装好了,就是不能加载包,我估计是缺少一个依赖,然后直接百度后,安装了这个:
pip3 install PyMuPDF
然后import成功。fitz两个坑,真心花了一小会功夫。
以上这篇解决python 虚拟环境删除包无法加载的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】