具有版本号的cx_Freeze模块

时间:2019-01-29 10:17:04

标签: python cx-freeze

我想通过版本号指定要安装的多个模块。

如果这是我的setup.py

如何调整mod列表的内容以指定版本号?

    from cx_Freeze import setup, Executable
    import sys

    base = None

    if sys.platform == 'win32':
        base = None


    executables = [Executable("main.py", base=base)]

    mods = ["cachetools==3.0.0",
    "pyexcel-xlsx==0.5.6",
    "idna"]

    packages = mods
    options = {
        'build_exe': {
            'packages':packages,
        },

    }

    setup(
        name = "file_rename",
        options = options,
        version = "1",
        description = 'renames pdf consent forms',
        executables = executables
    )

编辑: Utility.py文件开始:

import os
from os.path import dirname
import json
import io
from google.cloud import vision

应用@jpeg的建议后出现的错误如下: error

我的冻结点是:

appdirs==1.4.3
beautifulsoup4==4.7.1
cachetools==3.0.0
certifi==2018.11.29
chardet==3.0.4
cx-Freeze==5.1.1
dialogflow==0.5.1
dj-database-url==0.5.0
Django==2.1.4
django-heroku==0.3.1
et-xmlfile==1.0.1
google==2.0.1
google-api-core==1.6.0
google-auth==1.6.1
google-cloud==0.34.0
google-cloud-core==0.28.1
google-cloud-storage==1.13.1
google-cloud-vision==0.35.1
google-resumable-media==0.3.1
googleapis-common-protos==1.5.5
grpcio==1.16.1
gunicorn==19.6.0
idna==2.7
image==1.5.27
jdcal==1.4
lml==0.0.7
numpy==1.15.4
openpyxl==2.5.12
packaging==19.0
pandas==0.23.4
pdf2image==1.1.0
Pillow==5.3.0
protobuf==3.6.1
psycopg2==2.7.6.1
pyasn1==0.4.4
pyasn1-modules==0.2.2
pyexcel==0.5.10
pyexcel-io==0.5.11
pyexcel-xlsx==0.5.6
pyparsing==2.3.1
pypng==0.0.19
python-dateutil==2.7.5
pytz==2018.7
requests==2.21.0
rsa==4.0
six==1.11.0
soupsieve==1.7.3
texttable==1.5.0
urllib3==1.24.1
whitenoise==3.3.1
wincertstore==0.2
XlsxWriter==1.1.2

正常运行脚本时,不会出现此问题,只有在创建并运行我的exe之后,才会出现错误。

1 个答案:

答案 0 :(得分:0)

这在安装脚本中是不可能的(据我所知)。 cx_Freeze使可执行文件包括与调用它完全相同的python版本和配置,请参见documentation

因此,您需要进行新的python安装,例如,将所有模块安装到所需的配置中

python -m pip install cachetools==3.0.0

并使用例如

调用安装脚本
python setup.py build

其中python代表新安装的python可执行文件。

您可以在一台计算机上安装多个python,每个安装在不同的目录中,并安装了不同版本的模块。

例如,您还可以使用virtualenv来管理不同项目的单独软件包安装,但是似乎在cx_Freeze中使用virtualenv需要一些额外的调整才能正常工作。

编辑:

尝试将packages列表替换为

packages = ['google']

在您的设置脚本中。参见ModuleNotFoundError: No module named 'google' on python 3.6.7