在 medium.com 文章中 有一节介绍如何使用代码访问存储在 ZIP 文件中的包:
import sys
sys.path.append("my_package.zip")
from my_package import my_code
为了测试这一点,我从
PyPi下载了
optbinning 0.19.0
包,提取了所有文件,然后压缩了包含 __init__.py
文件的文件夹,并将我的文件命名为 optbinning_dwnl.zip
。
现在,如果我尝试使用代码加载文章中的包
import sys
import os
os.chdir("C:\\my_path")
sys.path.append('optbinning_dwnl.zip')
from optbinning_dwnl import OptimalBinning
我收到错误:“ModuleNotFoundError:没有名为“optbinning_dwnl”的模块。但是,如果我尝试从解压缩的文件夹加载包,一切正常:
import sys
import os
os.chdir("C:\\my_path")
sys.path.append('optbinning_dwnl')
from optbinning_dwnl import OptimalBinning
那么,是否可以从 zip 文件加载包?也许我做错了什么?
要从 zip 文件导入包,您需要复制其中的完整包结构。类似结构的压缩包
optbinning_dwnl.zip
|
| -- __init__.py
| -- code.py
应改为
optbinning_dwnl.zip
|
| -- optbinning <dir>
| -- __init__.py
| -- code.py
导入包使用:
sys.path.append('optbinning_dwnla.zip')
from optbinning import OptimalBinning #name of folder in .zip, not a .zip itself