Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加自定义操作以将文件重命名为带有cx\U冻结的msi安装程序_Python_Windows Installer_Python Multiprocessing_Cx Freeze - Fatal编程技术网

Python 添加自定义操作以将文件重命名为带有cx\U冻结的msi安装程序

Python 添加自定义操作以将文件重命名为带有cx\U冻结的msi安装程序,python,windows-installer,python-multiprocessing,cx-freeze,Python,Windows Installer,Python Multiprocessing,Cx Freeze,cx_Freeze的多处理程序包中存在一个错误,它将“pool.pyc”复制为“pool.pyc”,从而导致运行时错误:“没有名为multiprocessing.pool的模块” 为了缓解这种情况,我想在安装程序中包含一个VBScript,以便在安装后重命名该文件,以保持构建过程的自动化 我试过这个: msi_自定义_操作=[ ( “重命名_池”,#标识符 22、#自定义动作类型,https://docs.microsoft.com/en-us/windows/win32/msi/custom-

cx_Freeze的多处理程序包中存在一个错误,它将“pool.pyc”复制为“pool.pyc”,从而导致运行时错误:“没有名为multiprocessing.pool的模块”

为了缓解这种情况,我想在安装程序中包含一个VBScript,以便在安装后重命名该文件,以保持构建过程的自动化

我试过这个:

msi_自定义_操作=[
(
“重命名_池”,#标识符
22、#自定义动作类型,https://docs.microsoft.com/en-us/windows/win32/msi/custom-action-type-22
“installer_helper.vb”,#源代码
无,#目标
无,#扩展类型
)
]
msi_序列=[
(
“重命名_池”#操作名称
无,#条件
6601,#顺序(6600<复制文件后)
)
]
msi_数据={
“快捷方式”:msi_快捷方式_表,
“自定义操作”:msi_自定义操作,
“InstallExecuteSequence”:msi_序列,
}
选项={
“build_exe”:{
“优化”:1,
'包括':['atexit'],
'包括文件':[('./qt/','qt/'),'./TableOperationsDialogOperations.json','./single.rc','./matplotlibrc','./installer_helper.vb'],
“包”:包,
“排除”:['scipy.spatial.cKDTree','tkinter','tkinter'],#cKDTree排除了一个bug,cKDTree仍然可用
},
'bdist_msi':{#前三个选项消除了安装程序对管理员权限的需要
'initial_target_dir':r'[LocalAppDataFolder]\spleg',
“将_添加到_路径”:False,
“所有用户”:False,
“数据”:msi_数据,
'target_name':'spleg_Installer',
}
}
#执行构建
设置(
name=“spleg”,
选项=选项,
version='0.1.1',
description='SplitExplorerNextGeneration',
可执行文件=可执行文件
)
但在创建安装程序时,我收到以下错误:

creating dist
Traceback (most recent call last):
  File "build.py", line 146, in <module>
    executables=executables
  File "C:\Users\-\Documents\git_repos\spleng\.venv\lib\site-packages\cx_Freeze\dist.py", line 340, in setup
    distutils.core.setup(**attrs)
  File "C:\Users\-\AppData\Local\Programs\Python\Python37\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Users\-\AppData\Local\Programs\Python\Python37\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Users\-\AppData\Local\Programs\Python\Python37\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\-\Documents\git_repos\spleng\.venv\lib\site-packages\cx_Freeze\windist.py", line 420, in run
    self.add_config(fullname)
  File "C:\Users\-\Documents\git_repos\spleng\.venv\lib\site-packages\cx_Freeze\windist.py", line 74, in add_config
    msilib.add_data(self.db, tableName, data)
  File "C:\Users\-\AppData\Local\Programs\Python\Python37\lib\msilib\__init__.py", line 104, in add_data
    assert len(value) == count, value
AssertionError: ('rename_pool', 22, 'installer_helper.vb', None, None)
创建dist
回溯(最近一次呼叫最后一次):
文件“build.py”,第146行,在
可执行文件=可执行文件
文件“C:\Users\-\Documents\git\u repos\pleg\.venv\lib\site packages\cx\u Freeze\dist.py”,第340行,在安装程序中
distutils.core.setup(**attrs)
文件“C:\Users\-\AppData\Local\Programs\Python\Python37\lib\distutils\core.py”,安装程序第148行
dist.run_命令()
文件“C:\Users\-\AppData\Local\Programs\Python37\lib\distutils\dist.py”,第966行,在run\u命令中
self.run_命令(cmd)
文件“C:\Users\-\AppData\Local\Programs\Python\Python37\lib\distutils\dist.py”,第985行,在run\u命令中
cmd_obj.run()
文件“C:\Users\-\Documents\git\u repos\pleg\.venv\lib\site packages\cx\u Freeze\windist.py”,第420行,正在运行
self.add_config(全名)
文件“C:\Users\-\Documents\git\u repos\pleg\.venv\lib\site packages\cx\u Freeze\windist.py”,第74行,在添加配置中
msilib.add_数据(self.db、tableName、data)
文件“C:\Users\-\AppData\Local\Programs\Python\Python37\lib\msilib\\ uuuuu init\uuuuu.py”,第104行,在添加数据中
断言长度(值)=计数,值
断言错误:('rename_pool',22',installer_helper.vb',None,None)
有人能告诉我如何正确地添加脚本吗?我真的不能对文档进行正面或反面的分析。
我使用的是cx\U freeze 6.1版。

通过在setup.py中的excludes中添加“multiprocessing.Pool”,可以避免整个问题