在self created.eggFi中使用Python模块

2024-06-01 08:38:28 发布

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

我是一名Java开发人员,正试图掌握Pythog。我正在做一个由三个部分组成的项目。一个服务器,一个客户机和一个公共部分。(使用eclipse)

在公共包中,我创建了一个模块,如下所示:

'''
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文件。 我在客户项目中引用的这个蛋卷。看起来像这样:

^{pr2}$

我在这里要做的是设置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

我做错什么了?有没有更好的方法来完成像Java中的.jar那样的任务?在


Tags: 模块项目inpylogloggingdefline
1条回答
网友
1楼 · 发布于 2024-06-01 08:38:28

问题是他的鸡蛋目录是这样的:

| de/
  | __init__.py
  | christianae/
    | __init__.py
    | main/
      | __init__.py
      | common/
        | __init__.py
        | code.py

当他使用安装工具从中创建一个鸡蛋时,它只包含来自c/__init__.py,因此导入不能正常工作,因为Python没有将{}看作一个模块,也不会在树中更深入地进行。在

解决方法:平坦到源到common/*.py。因为他来自Java背景,所以拥有所有这些目录对他来说很自然,但是显然setuptools和{}不喜欢这样。在

相关问题 更多 >