[英]pkg_resources doesn't extract files from python egg
我通过从这个文件夹运行python setup.py bdist_egg
创建了一个python egg:
SensorDisplay/
--- sensor_display/
----- __init__.py
----- can.py
----- sensor_display.py
----- data/
--------- sensor_param.txt
--- setup.py
在文件setup.py
,我有:
package_data = {'' : ['*.txt']},
scripts = ['sensor_display/sensor_display.py','sensor_display/can.py']
并在文件sensor_display.py
:
PARAM_FILE = "data/sensor_display.txt"
param_file = pkg_resources.resource_filename("sensor_display", PARAM_FILE)
f = open(param_file,"r")
然后我在文件夹SensorDisplay\\dist\\
获取egg文件SensorDisplay-0.1-py2.7.egg
。 但是,当我使用easy_install安装egg并运行文件C:\\Python27\\Scripts\\sensor_display.py
,我C:\\Python27\\Scripts\\sensor_display.py
以下错误:
IOError: [Errno 2] No such file or directory: 'C:\\Python27\\lib\\site-packages\
\sensordisplay-0.1-py2.7.egg\\EGG-INFO\\scripts\\data\\sensor_param.txt'
似乎函数resource_filename
不提取egg文件,因为返回的文件名将egg文件视为不是的目录。
我找到了问题,我换了
PARAM_FILE = "data/sensor_display.txt"
param_file = pkg_resources.resource_filename("sensor_display", PARAM_FILE)
同
PARAM_FILE = "sensor_display/data/sensor_display.txt"
param_file = pkg_resources.resource_filename(pkg_resources.Requirement.parse("SensorDisplay"), PARAM_FILE)
egg文件是一个zip存档。 您可以使用unzip命令查看内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.