【发布时间】:2014-01-05 10:18:38
【问题描述】:
我是一名试图掌握 Pythog 的 Java 开发人员。我正在开发一个由三个组件组成的项目。一个服务器、一个客户端和一个公共部分。 (使用日食)
在通用包中,我创建了一个如下所示的模块:
'''
Created on 4 Jan 2014
@author: christian
'''
import logging
def logDebug(msg):
logging.log(logging.DEBUG, msg)
def logInfo(msg):
logging.log(logging.INFO, msg)
def logWarning(msg):
logging.log(logging.WARNING, msg)
def logError(msg):
logging.log(logging.ERROR, msg)
def logCritical(msg):
logging.log(logging.CRITICAL, msg)
这很简单,只是一个测试。我为这个项目设置了一个 setyp.py 并从中创建了一个 egg-File。 我在客户端项目中引用的这个 egg-Fille。看起来像这样:
import logging
from de.christianae.main.common import mylogging
def startUp():
logging.basicConfig(filename="client.log", level=logging.DEBUG)
mylogging.logCritical("Test Critical")
if __name__ == '__main__':
startUp()
我在这里要做的是设置 python 登录机制,而不是使用我自己的模块来避免总是不得不进入日志级别。
当我尝试运行该代码时,出现以下异常:
pydev debugger: starting
Traceback (most recent call last):
File "/opt/eclipse/plugins/org.python.pydev_3.2.0.201312292215/pysrc/pydevd.py", line 1706, in <module>
debugger.run(setup['file'], None, None)
File "/opt/eclipse/plugins/org.python.pydev_3.2.0.201312292215/pysrc/pydevd.py", line 1324, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "/home/christian/repository/synctoolclient/trunk/src/de/christianae/main/client/SyncToolClie nt.py", line 7, in <module>
from de.christianae.main.common import mylogging
ImportError: No module named common
我做错了什么?有没有更好的方法来完成类似 .jar 在 Java 中所做的事情?
【问题讨论】:
-
您是否缺少
__init__.py文件?common和mylogging是实际的目录和文件名吗? -
我在“/de/christianae/main/common/”中有四个文件。 “init.py”、“init.pyc”、“mylogging.py”和“mylogging.pyc”。 'common' 是目录,'mylogging.py' 是文件名。
-
我怀疑你
import mylogging时引用的不是egg文件,而是目录结构。尝试将 test 和 egg 移动到一个完全不同的目录树,看看错误是否改变。要从鸡蛋导入,您必须将其添加到您的路径:like this. -
你熟悉eclipse吗?我将鸡蛋添加到那里的 Pythonpath 中。有没有文件可以检查路径是否正确?编辑:如果我在不更改任何内容的情况下移动它,我会从 eclipse 中得到一个“未解决的导入:mylogging”。当我更改 PATH 时,我得到了同样的异常。
-
我尝试使用:import sys sys.path.insert(0, '/home/christian/repository/synctoolclient/trunk/lib/de/christianae/main/common/') 同样的异常跨度>
标签: python setuptools distutils importerror