1.在python项目开发过程中我们有时候会将别人的python项目迁移到自己本地,而别人的python项目往往是使用的虚拟环境即virtual enviroment 我在使用别人项目时,首先提示python sdk无效

python 导入本项目使用的包 python导入别人的项目_python


图片只是示意

然后通过搜索尝试了多种解决办法如修改venv下的pyvenv文件,修改activate.bat文件。或者是

pip freeze > requirements.txt # 生成requirements.txt

pip install -r requirements.txt # 从requirements.txt安装依赖

均无效。再次分析,venv在生成的时候会使用基础解释器,里面的一些配置肯定不同。

python 导入本项目使用的包 python导入别人的项目_安装包_02


那么既然如此,我的解决思路就是在我当前环境创建新的venv,获取到我本地环境的依赖关系,再将原来项目的package拿过来放在新环境里面就可以了。说干就干。

第一步,将原项目里的venv文件夹剪切至桌面存放,

python 导入本项目使用的包 python导入别人的项目_虚拟环境_03


第二步,在项目中新建虚拟环境

python 导入本项目使用的包 python导入别人的项目_虚拟环境_04


python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_05


python 导入本项目使用的包 python导入别人的项目_虚拟环境_06


两个venv打开文件内容一致

python 导入本项目使用的包 python导入别人的项目_python_07


下一步将新的venv里的内容复制到旧的venv中,替换同名文件,也就是用新的venv里的依赖替换旧的依赖,然后保留原来的包这样旧的venv就变成了旧的包+新的依赖,这样我们就能使用了。把这个venv放到项目中就好了

python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_08


python 导入本项目使用的包 python导入别人的项目_虚拟环境_09


python 导入本项目使用的包 python导入别人的项目_虚拟环境_10


此时得到的环境就是我们可用的虚拟环境,这样就不会存在不同版本不适配的问题最后说一下,如何自定义生成一个三方库

首先在我们项目的python包的同级目录下新建setup.py文件

python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_11


setup.py文件的内容为

python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_12


点击打开终端terminel

python 导入本项目使用的包 python导入别人的项目_虚拟环境_13


执行命令,用的哪个解释器就用哪个python.exe

python 导入本项目使用的包 python导入别人的项目_python_14


python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_15


再执行命令

python 导入本项目使用的包 python导入别人的项目_python 导入本项目使用的包_16


python 导入本项目使用的包 python导入别人的项目_python_17


这里dist目录里构建出来的tar包,就是我们可以安装的第三方框架了,可以发布提供给其他人安装使用

那么如何在虚拟环境安装打包好的自定义库呢

首先进入venv环境下的scripts目录 进入cmd命令窗口 执行pip install 安装包 当然最好将安装包放到scripts目录下