2011-10-30 37 views
11

导入从文件夹中的一类我有这样在另一个层面

/ 
/crawl.py 
/crawl/__init__.py 
/crawl/john.py 
/tests/test_john.py 

Python应用程序是什么,我试图做的,是运行单元测试test_john.py这需要使用john.py但它在另一个文件夹。

在我tests/test_john.py我得到这个当我运行它

Traceback (most recent call last): 
    File "test_john.py", line 2, in <module> 
    from john import John 
ImportError: No module named john 

所以,我怎么能导入一个类,从爬行文件夹....

+0

你可以尝试'从crawl.john导入John'或者尝试'从..crawl.john导入John'(参考http://stackoverflow.com/questions/1054271/how-to-import-a-python- class-that-in-a-directory-above) –

回答

11

如果你的根文件夹是在您的PYTHONPATH和你让一个导入的包如下:

/__init__.py 
/crawl.py 
/crawl/__init__.py 
/crawl/john.py 
/tests/__init__.py 
/tests/test_john.py 

你可以这样做:

from crawl.john import John 

from ..crawl.john import John 
+0

似乎根文件夹不在我的python路径中。我认为它可能会将CWD添加到pythonpath,但不会。最好的方法来做到这一点? – Wizzard

+0

取决于您的配置。在Windows中,对于我的包和库,我只需使用文件夹的名称在site-packages中添加一个site.pth文件。 – joaquin

2

如果您的操作系统支持的话,把一个符号链接../crawltest目录,然后使用from crawl.john import John

相关问题