gpt4 book ai didi

Python 奇怪的 ImportError : No module named error

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:26 24 4
gpt4 key购买 nike

我已经创建了一个应该作为服务运行的 python 软件。它有一个模块和一个脚本,位于/etc/init.d 下。我使用distutils来打包系统。一切都安装正常,但是当我尝试从/etc/init.d 运行脚本时,它引发了以下异常:

Traceback (most recent call last):
File "/etc/init.d/printserver.py", line 11, in <module>
from myprintserver import *
File "/etc/rc.d/init.d/printserver.py", line 12, in <module>
import myprintserver.printserver
ImportError: No module named printserver

当我尝试通过命令行导入模块时,它运行良好。

[root@linuxbox Code]# python
Python 2.7.3 (default, Jul 24 2012, 10:05:38)
[GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from myprintserver import *
>>> from myprintserver.printserver import *
>>> daemon = PrintServer('/tmp/printer-daemon.pid','/dev/null','/tmp/dlog','/tmp/dlog')
>>>

我检查了 site-packages 下的模块,一切正常。我在错误出现之前打印了 sys.path 并包含了/usr/lib/python2.7/site-packages。 sys.path 打印输出如下:

['/etc/rc.d/init.d', '/usr/lib/python2.7/site-packages/escpos-1.0-py2.7.egg', '/usr/lib/python2.7/site-packages/pyusb-1.0.0a3-py2.7.egg', '/usr/lib/python2.7/site-packages/mechanize-0.2.5-py2.7.egg', '/usr/lib/python2.7/site-packages/PIL-1.1.7-py2.7-linux-x86_64.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gst-0.10', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

最佳答案

这个问题是因为/etc/init.d 下的脚本与模块同名。因此,当我尝试包含模块时,脚本本身也包含在内。

更改脚本的名称解决了问题。

由于脚本没有名为 printserver 的类,因此引发了错误。这在开发过程中不是问题,因为模块和脚本都在同一个目录中,并且首先包含模块。

关于Python 奇怪的 ImportError : No module named error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com