Python怪异的ImportError:没有命名的模块

2024-10-01 07:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个应该作为服务运行的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

当我试图通过命令行导入模块时,它工作得很好。在

^{pr2}$

我检查了模块下所有的东西。我印刷的系统路径在错误出现之前,并包含/usr/lib/python2.7/site-packages。系统路径打印如下:

['/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']

Tags: 模块py脚本initegglibpackagesusr
1条回答
网友
1楼 · 发布于 2024-10-01 07:34:50

导致该问题的原因是/etc/init.d下的脚本具有相同的模块名称。因此,当我试图包含该模块时,脚本本身也包含在内。在

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

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

相关问题 更多 >