我没法让顾客把包裹放进去拉梅尔亚姆勒使用build_exe。在
我也尝试过将它添加到“packages”选项中,比如
build_exe_options = {
...
"packages": [
...
"ruamel.yaml",
...
]
...
}
cx_Freeze.setup(
...
executables=[cx_Freeze.Executable("pyhathiprep/__main__.py",
targetName="pyhathiprep.exe", base="Console")],
)
我得到了
^{pr2}$我试着把它添加到“namespace\u packages”中,比如
build_exe_options = {
...
"namespace_packages": ["ruamel.yaml"]
...
}
cx_Freeze.setup(
...
executables=[cx_Freeze.Executable("pyhathiprep/__main__.py",
targetName="pyhathiprep.exe", base="Console")],
)
我得到了
File "C:\Users\hborcher\PycharmProjects\pyhathiprep\.env\lib\site-packages\cx_Freeze\finder.py", line 221, in _FindModule
return None, module.__path__[0], info
TypeError: '_NamespacePath' object does not support indexing
我做错什么了?在
ruamel.yaml
的doc
清楚地表明,必须使用pip
和{ruamel.yaml
。在CX\u Freeze不调用
pip
,也不支持从(正确的预配置).whl
文件安装。相反,它似乎确实以自己的方式调用setup()
。在您可以尝试在源目录中创建一个} 跳过{}和所有其他安装cruft中复制所有{}文件。或者,您可以从Bitbucket中签出这些文件,但这样会有更多不必要的问题需要处理,并且如果不按release标记签出,则会有一个未发布的中间版本的轻微风险。
ruamel
目录,然后在该目录中创建一个空的__init__.py
文件和yaml
目录。在这个yaml
目录中,从一个未打包的latest version of ^{一旦成功,您将在冻结的应用程序中拥有
ruamel.yaml
的“纯”Python版本。在如果您使用的是
yaml = YAML(typ='safe')
或yaml = YAML(typ='unsafe')
,并且您希望基于C的加载程序和转储程序能够提高速度,那么您应该看看使用PyPI上提供的Windows.whl
文件。它们包括_ruamel_yaml.cpXY-win_NNN.pyd
文件。如果您不知道您的目标(python和/或win32 | win|amd64),您应该能够包括所有这些,并且ruamel.yaml
将在启动时选择正确的目标(实际上它只知道from _ruamel_yaml import CParser, CEmitter
),并假设python解释器知道该做什么)。在我对azure也有同样的问题。问题是微软构建azure包的方式-你可以导入天哪。什么。还有什么.module,但无法直接导入azure。cx_freeze需要能够直接找到文件夹azure(或者在您的例子中,是文件夹ruamel),而不仅仅是子文件夹。在
我必须转到我正在访问的azure文件夹下的每个目录,确保那里有一个init.py文件。在那之后,克苏·弗雷泽找到了它。在
另一个选择是直接将文件夹从您知道的路径(直接链接到站点包,或将ruamel目录复制到您的程序目录中并从那里复制)复制到构建文件夹中,作为安装的一部分。我对数据文件这样做:
好吧,我想出了一个解决办法。我想可能是冷冻室里的一个虫子。如果我pip安装拉美尔基地以及拉梅尔亚姆勒cx冻结似乎安装一切都正确。这是真的,即使我要求它只包括拉梅尔亚姆勒. 在
如果我两者都有拉美尔基地以及拉梅尔亚姆勒安装,然后这个工作。。。在
相关问题 更多 >
编程相关推荐