繁体   English   中英

pkg_resources不从python egg中提取文件

[英]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)

另请参见pkg_resources.resource_filename不提取文件

egg文件是一个zip存档。 您可以使用unzip命令查看内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM