Python 带有版本号的cx\ U冻结模块

Python 带有版本号的cx\ U冻结模块,python,cx-freeze,Python,Cx Freeze,我想按版本号指定要安装的多个模块 如果这是我的setup.py: 如何调整mods列表的内容以指定版本号? 来自cx\u冻结导入设置,可执行 导入系统 基本=无 如果sys.platform==“win32”: 基本=无 可执行文件=[可执行文件(“main.py”,base=base)] mods=[“cachetools==3.0.0”, “pyexcel xlsx==0.5.6”, “idna”] 软件包=mods 选项={ “build_exe”:{ “包”:包, }, } 设置( na

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

如果这是我的
setup.py

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

来自cx\u冻结导入设置,可执行
导入系统
基本=无
如果sys.platform==“win32”:
基本=无
可执行文件=[可执行文件(“main.py”,base=base)]
mods=[“cachetools==3.0.0”,
“pyexcel xlsx==0.5.6”,
“idna”]
软件包=mods
选项={
“build_exe”:{
“包”:包,
},
}
设置(
name=“file\u rename”,
选项=选项,
version=“1”,
description='重命名pdf同意书',
可执行文件=可执行文件
)
编辑: utilities.py文件开始于:

import os
from os.path import dirname
import json
import io
from google.cloud import vision
我在应用@jpeg的建议后得到的错误如下:

我的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

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

这在安装脚本中是不可能的(据我所知)
cx_Freeze
生成一个可执行文件,其中包含与调用该文件时完全相同的python版本和配置,请参阅

因此,您需要进行一个新的python安装,在该安装中,您可以使用例如

python -m pip install cachetools==3.0.0
python setup.py build
并使用例如

python -m pip install cachetools==3.0.0
python setup.py build
其中
python
表示新安装的python可执行文件

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

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

编辑:

尝试将
程序包
列表替换为

packages = ['google']

在安装脚本中。请参见

谢谢您的回复。我这样做了,但是我得到了modulenotfound错误。当我在没有cx\U冻结的情况下在virtualenv中运行脚本时,不会发生这种情况。这让我相信使用了错误的版本。还有什么我可以尝试的吗?请发布完整的错误消息,以及运行哪个命令来获取此错误。请参见如何创建一个。否则,几乎没有人能够理解你的问题并试图帮助你。@AlwaysCarous感谢你的补充。我在回答中增加了相应的建议。如果您可以将错误消息作为文本而不是图像发布,则会更好,请参阅