繁体   English   中英

为什么python setup.py已安装模块找不到已安装的资源?

[英]Why python setup.py installed module cannot find the installed resources?

我已将 python 模块正确安装到/usr/lib/python2.7/site-packages/mymod 但是,当我尝试运行它时

python2 -m mymod

它仅从/home/me/dev/mymod/mymod/ dir 运行,如果我从任何其他目录执行相同操作,则会失败。

IOError: [Errno 2] No such file or directory: 'mymod/data/icons/mymod.ico'

它具有所有可用的正确路径:

/usr/lib/python2.7/site-packages/line_profiler-1.0-py2.7-linux-x86_64.egg
/usr/lib/python2.7/site-packages/textblob-0.11.1-py2.7.egg
/usr/lib/python2.7/site-packages/nltk-3.2-py2.7.egg
/usr/lib/python2.7/site-packages/pyCNN-0.0.0-py2.7-linux-x86_64.egg
/usr/lib/python27.zip
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/lib/python2.7/site-packages
/usr/lib/python2.7/site-packages/gst-0.10
/usr/lib/python2.7/site-packages/gtk-2.0
/usr/lib/python2.7/site-packages/wx-3.0-gtk2

为什么它在/usr/lib/python2.7/site-packages找不到mymod/data/icons/mymod.ico当它在那里时。 我尝试在mymod.pymymod/data/icons/data/icons使用不同的路径,但没有任何帮助。

$ file /usr/lib/python2.7/site-packages/mymod/data/icons/mymod.ico 
/usr/lib/python2.7/site-packages/mymod/data/icons/mymod.ico: MS Windows icon resource - 1 icon, 128x128

这个问题一直困扰着我所有使用setup.py python 项目,我认为我明显误解了 python 模块应该如何运行。

我以某种方式认为您的本地参考将事情搞砸了。

如果您从另一个目录启动python -m module ,相对文件引用可能仍被解释为相对于您的工作目录,而不是相对于需要该文件的模块。

尝试按如下方式引用您的模块本地文件,看看它是否解决了问题:

from os import path
datadir = path.join(path.dirname(__file__), 'data')
icofile = path.join(datadir, 'icons', 'mymod.ico')

正如本答案中所建议的那样。

暂无
暂无

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

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