代码之家  ›  专栏  ›  技术社区  ›  alwayscurious

带有版本号的cx_冻结模块

  •  0
  • alwayscurious  · 技术社区  · 7 年前

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

    如果这是我的 setup.py :

    如何调整MODS列表的内容来指定版本号?

        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
        )
    

    编辑: utilities.py文件开始于:

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

    应用@jpeg的建议后,我得到的错误如下: error

    我的PIP冻结是:

    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 回复  |  直到 7 年前
        1
  •  0
  •   jpeg Abraham    7 年前

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

    因此,您需要进行一个新的python安装,在这里您可以使用以下示例将所有模块安装到所需的配置

    python -m pip install cachetools==3.0.0
    

    并使用例如

    python setup.py build
    

    哪里 python 表示新安装的python可执行文件。

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

    你也可以举个例子 virtualenv 为不同的项目管理不同的包安装,但似乎使用 CXI冻结 从一个 virtualenv 需要一些额外的调整才能正常工作。

    编辑:

    尝试替换 packages 按清单

    packages = ['google']
    

    在安装脚本中。见 ModuleNotFoundError: No module named 'google' on python 3.6.7

    推荐文章