3

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-0.1-py2.7.egg夹中的 egg 文件SensorDisplay\dist\。但是,当我使用 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没有提取鸡蛋文件,因为返回的文件名将鸡蛋文件视为不是它的目录。

4

2 回答 2

3

发现问题,换了

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 未提取文件

于 2016-02-05T09:48:31.233 回答
1

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

于 2016-02-04T10:50:37.050 回答