项目开发一直在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 "", line 1, in

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‑6.0.0‑cp38‑cp38‑win_amd64.whl

必须提前下载安装这样一个文件。先试试。python离线库下载地址大全,网址:

这里面有所有的离线包可以下载非常全面。到里面找这个

traits‑6.0.0‑cp38‑cp38‑win_amd64.whl

结果下载安装时,直接报错,提示不适用该平台。我发现cp38,考虑是python3.8适用的,于是重新进去下载3.6版本的。下面是3.6的32和64位系统两个文件名

traits‑6.0.0‑cp36‑cp36m‑win_amd64.whl

traits‑6.0.0‑cp36‑cp36m‑win32.whl

下载完成后,将文件放入python安装文件夹的scripts文件夹中,cmd命令进入该文件夹,pip3 install加安装文件名直接安装。再通过安装fitz,安装成功。

#依次安装如下包,第一个必须在文件所在目录安装

pip3 install traits‑6.0.0‑cp36‑cp36m‑win_amd64.whl

pip3 install fitz

fitz使用第二坑

仅仅安装第一坑中的文件后,可以直接通过pip安装fitz,但是,输入import fitz后,会报错,提示No module named ‘frontend'

import fitz

很奇怪是吧, 我也很奇怪,明明安装好了,就是不能加载包,我估计是缺少一个依赖,然后直接百度后,安装了这个:

pip3 install PyMuPDF

然后import成功。fitz两个坑,真心花了一小会功夫。

以上这篇解决python 虚拟环境删除包无法加载的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持随便开发网。

安装fitz报错_解决python 虚拟环境删除包无法加载的问题相关推荐

  1. ubuntu安装mysql报错_解决Ubuntu 12.04中更改MySQL默认编码报错

    Ubuntu 12.04,安装了MySQL,完了之后,更改了字符编译,就报错.感觉很郁闷. 环境: root@ubuntu:~# uname -a Linux ubuntu 3.2.0-23-gene ...

  2. python elif报错_解决python循环的elif报错的方法

    解决python循环的elif报错的方法 发布时间:2020-08-05 15:36:51 来源:亿速云 阅读:96 作者:小新 解决python循环的elif报错的方法?这个问题可能是我们日常学习或 ...

  3. 安装fitz报错_动态 - Fitz999的个人空间 - OSCHINA

    谢谢! 我们实验室的python2.7是安装在/usr/local下的,而python2.6是安装在/use/lib64下的.为了能让python2.7引用装在python2.6下的matplotli ...

  4. python安装pylad报错_用python画出某“毒王”的动态路线图

    河南前几天出现1例输入性新冠肺炎确诊病例 ,打破了连续十几天"0"增加的记录,也把河南人民重新带入疫情的黑暗恐怖之中 .为了让大家的清晰地掌握该"毒王"的行程, ...

  5. 安装pytorch报错及解决

    环境,win10,64位,Anaconda4.10.3,Cuda 9.2.148,cudnn应该为v7.4.2.24 其中在Anaconda中好像安装tensorflow-gpu 1.9 ,pytho ...

  6. 记一次用pip安装docker-compose报错及解决方法

    记一次用pip安装docker-compose报错及解决方法 参考文章: (1)记一次用pip安装docker-compose报错及解决方法 (2)https://www.cnblogs.com/fe ...

  7. Deepin下安装scrapy报错fatal error: Python.h: 没有那个文件或目录

    Deepin下安装scrapy报错(亲测有效!) 问题描述 在deepin操作系统上,使用python3.6,通过sudo pip3 install scrapy安装时候,出现以下错误: src/tw ...

  8. npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...

    NodeJs的出现,让前端工程化的理念不断深入,正在向正规军靠近.先是带来了Gulp.Webpack等强大的构建工具,随后又出现了vue-cli和create-react-app等完善的脚手架,提供了 ...

  9. 安装python37路径报错_解决pycharm安装python库报错问题

    最近在玩微信图灵机器人,不过我安装有一些库,安装报错,上网找了很久,总结有两种方法,记录一下 方法一: 手动安装,直接到官网你需要的python库下载到本地, 放在安装python路径,C:\User ...

最新文章

  1. 【XAudio2】2.XAudio2 开始!
  2. C++类的使用(三)—— 封装
  3. 嵌入式tomcat例子
  4. 微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码
  5. 寄存器地址和内存地址_3. 从0开始学ARMARM模式、寄存器、流水线
  6. 通过PS修出自然的大长腿
  7. 会计的思考(37):“弱水三千,只取一瓢饮”--业务人员的财务意识
  8. let与var的区别(重点看例子)
  9. 6 猜数字游戏 (15分)——数学分析能力
  10. 淘宝触屏版宝贝详情改造(一)
  11. 关于恢复误删Word文档的步骤详解
  12. 使用STM32Cube MX为STM32 CAN总线快速配置上手教程_HAL库_CAN协议_STM32_附波特率计算工具
  13. 生物信息学 陈铭_生物信息学Bioinformatics-山东大学课程中心.PDF
  14. 扫盲:什么是单片机时序,如何看懂时序图
  15. word转换为html代码,如何将Word转换为网页html格式的方法(附代码清理方法)
  16. 热插拔机制之udev和mdev
  17. E1、CE1、T1、PRI、BRI知识介绍和配置
  18. 一年赚一百万很简单(穷人翻身唯一出路)
  19. 重庆大学计算机学院刘然,重庆大学考研研究生导师简介-刘然
  20. JdbcTemplate 简介

热门文章

  1. PyTorch 实现孪生网络识别面部相似度
  2. 微型激光投影廉价版本
  3. 其实不的免费图标网站
  4. 「自己开发直播」rtmp-nginx-module实现直播状态、观看人数控制
  5. 更多的结构化命令(第十三章)
  6. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
  7. 持续交付流水线的敏捷利器:环境配置管理与应用部署自动化
  8. Discuz X2论坛数据库MyISAM转InnoDB的脚本
  9. 嵌入式MVN指令解析
  10. 【GDOI2016模拟3.16】幂(容斥 + 模型复杂转化)