我想通过版本号指定要安装的多个模块。
如果这是我的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
我的冻结点是:
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之后,才会出现错误。
答案 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