2

我有一个 Python 程序,它动态地向sys.path. 它工作正常,但我想将我的 Python 程序作为__main__.py运行的 .zip 文件分发。

我可以sys.path从 zip 文件中添加条目吗?经过一番搜索,我找到了pkgutil文档,但我不知道什么会起作用。

注意:我需要添加的东西sys.path包括Windows.pyd.dll文件。

4

1 回答 1

3

我不完全确定我理解你的问题,但无论如何我都会尽力回答......

不幸的是,虽然您可以通过将 zipfile 添加到以下位置来导入它sys.path

sys.path包含提供模块和包的搜索位置的字符串列表。它是从 PYTHONPATH 环境变量和各种其他安装和实现特定的默认值初始化的。中的条目sys.path可以命名文件系统上的目录、zip 文件site以及可能应该搜索模块的其他“位置”(参见模块),例如 URL 或数据库查询。只有字符串和字节应该出现在sys.path; 所有其他数据类型都被忽略。字节条目的编码由各个路径条目查找器确定。

来源:http ://docs.python.org/3/reference/import.html#path-entry-finders

...不扩展到.pyd.dll文件:

ZIP 存档中可能存在任何文件,但只有文件.py可以 .py[co]导入。不允许ZIP 导入动态模块 ( .pyd, .so)。

来源:http ://docs.python.org/3/library/zipimport.html

我不知道有任何解决此限制的方法。

于 2013-07-24T01:59:28.860 回答