我有一个 Python 程序,它动态地向sys.path
. 它工作正常,但我想将我的 Python 程序作为__main__.py
运行的 .zip 文件分发。
我可以sys.path
从 zip 文件中添加条目吗?经过一番搜索,我找到了pkgutil
文档,但我不知道什么会起作用。
注意:我需要添加的东西sys.path
包括Windows.pyd
的.dll
文件。
我有一个 Python 程序,它动态地向sys.path
. 它工作正常,但我想将我的 Python 程序作为__main__.py
运行的 .zip 文件分发。
我可以sys.path
从 zip 文件中添加条目吗?经过一番搜索,我找到了pkgutil
文档,但我不知道什么会起作用。
注意:我需要添加的东西sys.path
包括Windows.pyd
的.dll
文件。
我不完全确定我理解你的问题,但无论如何我都会尽力回答......
不幸的是,虽然您可以通过将 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
)。
我不知道有任何解决此限制的方法。