当前位置:   article > 正文

pyenv下python依赖的路径和打包项目

python库要不要安装到项目路径下会影响打包吗

写在前面:要保证任何python环境都能运行项目,需求就是把该项目的所有依赖都提取出来。现在有两种方法。

1. 使用工具

一个很好用的打包工具:pyinstaller

1.1 直接pip install pyinstaller
12031442-7beaf828fb409840.png
1.2 用法:

很简单,cd到目标项目的.py目录下,运行pyinstaller -F file.py -F:表示只生成一个可执行文件,如果不加则会在dist文件夹下生成很多文件和一个可执行文件。

  1. cd slurm_export/src
  2. pyinstaller -F export.py

successfully之后,当前目录下会生成两个文件夹,一个dist,一个build,我们所需要的文件在dist里面。
直接运行就可以了

./export

为啥不用这个方法呢,因为在python的包中,有的完全是python的,而有的并不是纯python的,那么接下来介绍方法二,如何安全的提取打包。

2. 简单粗暴的找到路径,复制下来放入项目中

2.1 那么路径在哪呢?

我是从pycharm中找到了蛛丝马迹

12031442-1c85a9f9258842e2.png

然而当你进入bin目录下时,你会发现毛都没有,根本没有python的文件夹,所以路径根本不在这。
那么会在哪呢,大家可能会想到 /lib这个目录,这里存放着系统最基本的动态链接共享库,其作用类似于Windows里的. dll文件。几乎所有的应用程序都须要用到这些共享库。

12031442-420fb91db1309193.png

果然,这里有很多我们需要的安装包,但是,你会发现怎么不全?怎么有的有,有的没有?因为这里面放的都是python官方的库,我们自己安装的库并不在这,而是在 site-packages

cd site-packages
12031442-9eaf32b99751e3f9.png

现在全都找到了,如果你可以打开.py文件,那么路径更好找,直接cd过去就ok了:


12031442-28f9a4ffdd914e03.png

回到之前我们的疑问:怎么判断安装包是不是纯python的呢?

find file_name/
12031442-fb526d607feace3e.png

这里面的.so文件就不是python的文件,.py/.pyc是。所以这种包无法打包,只能到目标环境下手动安装。
找到我们需要的包,cp出去放到sys.path可以找到的路径下就可以了(放到你要run的那个文件夹里),结果如下:

12031442-6fa83bb7604e6550.png

3. 检测

重新创建一个虚拟环境,运行下export.py查看能否正常运行就ok了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/44195
推荐阅读
相关标签
  

闽ICP备14008679号