使用pyinstaller与anaconda环境

6

我有一个非常简单的应用程序,使用python(v 3.6)制作,并希望使用pyinstaller冻结它。我使用anaconda创建了一个环境来制作应用程序,并在其中安装了所需的软件包(youtube_dl)。我需要帮助如何使用pyinstaller为我的应用程序(Main.py)使用我创建的环境及其内部的所有软件包。

如果我运行"pyinstaller Main.py",我会得到以下错误:

Traceback (most recent call last):
  File "Main.py", line 7, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 631, in exec_module
    exec(bytecode, module.__dict__)
  File "youtube_downloader.py", line 3, in <module>
ModuleNotFoundError: No module named 'youtube_dl'
[2708] Failed to execute script Main
logout

我该如何使pyinstaller使用我在Anaconda目录中创建的环境?

4个回答

7
我通过在Anaconda提示符中输入以下命令重新安装了pyinstallerconda install -c conda-forge pyinstaller 这对我起作用了。

3

看起来您在anaconda环境中安装了youtube_dl,而且您正在anaconda环境外运行pyinstaller,因此它找不到所需的模块。您是否尝试过在pyinstaller Main.py之前只执行pip install youtube_dl


是的!谢谢,这对我有用。但是,我总是使用anconda环境来避免包之间的冲突,所以,你知道我如何在anaconda环境中使用pyinstaller吗??无论如何,谢谢老兄! - Gonzalo
1
你好,可能你可以在anaconda环境中安装pyinstaller,并从那里运行它。我自己没有尝试过,但应该可以工作。 - Ontamu

0

如果您无法运行piping piping的答案。

例如:

  • 使用非常旧的Anaconda版本,但仍需要使用它。
  • 使用非常旧的pip。
  • 无法从主机访问pypi。

您可以手动安装pyinstaller。

先决条件

假设您已安装setuptools。

示例:在Linux上安装Python 2.7的PyInstaller 3.5

  1. 下载PyInstaller 3.5

检查requirements.txt

pefile; sys_platform == 'win32'
macholib; sys_platform == 'darwin'
altgraph  # <== you need this

dis3; python_version < '3.0' #<== and this
pywin32-ctypes; sys_platform == 'win32'
  1. 下载并安装dis3

    1. tar xzf dis3-0.1.3.tar.gz
    2. cd dis3-0.1.3
    3. python setup.py install/somewhere/your/python2.7 setup.py install
  2. 下载并安装altgraph

    • 同上
  3. 安装PyIstaller

    • 同上

0

我曾经遇到过这个问题,不得不发布我的答案,以应对所有冗长和过于复杂的回复。

  1. 如果您有pyninstaller(或没有),请激活您的conda环境

conda activate "envName"

您可以通过多种方式获取您的环境名称,其中一种简单的方法是只需打开Anaconda(UI)> Environment(在左侧),您的环境名称将列在中间列中,就在您点击的位置旁边。

  1. 安装pyinstaller。

如果您已经安装了它,第一行将会是 "Requirement already satisfied: pyinstaller in [Path]"

如果您没有安装它,它将简单地安装它,同样的逻辑适用,从那里获取路径。确保它说":pyinstaller in"然后复制该路径。

  1. 从您的conda环境运行pyinstaller:

python [Full library path\pyinstaller] –onefile [your script]

这个想法是需要 main 函数而不是 pyinstaller.py,所以不必专门寻找它。

希望这可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接