如何为PyInstaller可执行文件指定Python版本和库版本

问题描述

使用PyInstaller创建可执行文件时,如何捆绑特定版本的特定Python解释器和某些库?

我想从我的.py脚本创建一个可执行文件。My__main__.py从网站下载一些数据并进行转换,然后将其保存在文件夹中作为EXCEL文件。

以下是要求。

  1. 使用Python3.6

为此,我找到了some related posts,但一直不清楚。我的main.py需要执行Python3.6,而此.exe文件的用户不一定拥有Python3.6,因此我还想将此Python捆绑到.exe文件中。但是,仅仅一个命令python3 -m pyinstaller __main__.py真的足够了吗?我没有信心,我想知道我到底需要做什么。

  1. 使用特定版本的库,如Pandas==0.23、BeautufulSoup4==4.9.1等。

我认为我需要在.spec文件中使用pure,因为the documentation表示脚本";所需的纯Python模块。但我找不到任何文档,说明我到底需要做什么才能让它包括 pandas ==0.23,美丽的南美==4.9.1等等。

如有任何帮助,我们将不胜感激!


解决方案

我使用虚拟环境执行此操作:如果您的环境具有所需的Python版和包版本,则可以pip在那里安装PyInstaller并从该环境生成.exe。

Conda版本为:

  1. 创建环境:
conda create --name my_env_name python=3.6
  1. 激活:
conda activate my_env_name
  1. 安装所需的程序包版本和PyInstaller:
pip install pandas==0.23
pip install beautifulsoup4==4.9.1
pip install pyinstaller

# or to get the developer version, which fixes some issues I have run into
# pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
  1. 然后构建您的EXE:
python pyinstaller myscript.py

拥有这个虚拟环境对于编写/测试您的程序也是一个很好的控制,因为它确保不需要其他依赖项。因此,我倾向于只将脚本所需的包安装到环境中。

但是,如果没有蟒蛇,我不确定如何使用venv做到这一点。但也许这仍然会给你指明一个方向(或者其他人可以详细说明?另请参阅this post)。

相关文章