pkg_resources 不从 python egg 中提取文件
pkg_resources doesn't extract files from python egg
我通过 运行ning python setup.py bdist_egg
从这个文件夹创建了一个 python 鸡蛋:
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
时,出现以下错误:
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 文件视为一个目录,但它不是。
egg 文件是一个 zip 存档。您可以使用解压缩命令查看内容。
我发现了问题,我更换了
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 is not extracting files
我通过 运行ning python setup.py bdist_egg
从这个文件夹创建了一个 python 鸡蛋:
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
时,出现以下错误:
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 文件视为一个目录,但它不是。
egg 文件是一个 zip 存档。您可以使用解压缩命令查看内容。
我发现了问题,我更换了
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 is not extracting files