将 pyinstaller 与两个 python 环境一起使用
Posted
技术标签:
【中文标题】将 pyinstaller 与两个 python 环境一起使用【英文标题】:Using pyinstaller with two python environments 【发布时间】:2018-05-17 10:10:43 【问题描述】:我正在使用 pyinstaller 将一个 .py 文件打包到 .exe 中。我的 WIN10 64 位计算机上有两个 Python3 环境。一个来自Anaconda,另一个是Python3-32bit,单独安装。此 .py 文件由 Anaconda Python 环境生成。 安装 pyinstaller 后,我将环境变量 PATH 设置为:`
PATH=PATH;C:\Anaconda3\Scripts;C:\Python35-32\Scripts;
但是,当我输入 pyinstaller file.py
时,它会引发很多警告:
似乎pyinstaller
在 Python35-32 的 lib 文件夹而不是 Anaconda 中搜索依赖项。如何让它在 Anaconda 的 lib 文件夹下搜索依赖项?
`
【问题讨论】:
【参考方案1】:您是使用 pip 还是使用 (ana)conda 安装 pyinstaller?如果是,请检查 pip 是 python3-32bit 还是 anaconda 的:
pip -V
这将告诉您 pip 以及 pyinstaller 是否安装在 32 位解释器上,因此它为什么会在该特定文件夹中查找。
解决方案是使用 conda 或在 anaconda IDE 中安装 pyinstaller。可能需要从 python3-32bit 卸载 pyinstaller
【讨论】:
嗨@dzman。我先在 python3-32bit 上安装了pyinstaller
。然后使用conda install
再次安装它。我的pip -V
给了我'来自 c:\python35-32\lib\site-packages\pip (python 3.5) 的 pip 10.0.1'。接下来我该怎么办?
我认为问题是从提示符运行 pyinstaller 默认为 python32 版本,所以也许使用 pip 卸载那个 python 32 ?
你是对的。我卸载了 python3-32bit pyinstaller,然后 pyinstaller 在 Anaconda 的脚本文件夹中搜索。这是否意味着如果我要打包另一个python3-32bit提供的.py文件,我必须卸载Anaconda的pyinstaller并重新安装python3-32的pyinstaller?
您应该能够运行 conda 的 pyinstaller 来打包该 py 文件。然而,Pyinstaller 将使用来自 anaconda 的模块。如果要使用安装在 python35-32 中的依赖项,要做的事情是使用 python -m venv test-env
为 python35-32 创建一个虚拟环境,然后激活该虚拟环境,安装 pyinstaller 和所有必需的模块,然后使用它运行 pyinstaller虚拟环境以上是关于将 pyinstaller 与两个 python 环境一起使用的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Subprocess.popen() 与 pyinstaller 一起使用?
Python Pyinstaller MSYS 问题与 PyQtWebKit
python3使用pyinstaller打包apscheduler出的错