2016-04-18 83 views
-1

我遇到__import__方法的問題。它似乎只導入模塊的基本目錄,而不是文件。__import__只能導入__init__.py

比如我有:

test_suite/assert_array_length.py 

當我通過這個到__import__

moduleLocation = "test_suite.assert_array_length" 
module = __import__(moduleLocation) 
print module 

我越來越:

[sub_directories]/test_suite/__init__.pyc 

調用序列會從run_tests.pytest_runner.pytest_runner.py然後進口assert_array_length.py。他們制定了這樣的:

run_tests.py 
|-----------test_runner.py 
|-----------assert_array_length.py 

,因爲它導入__init__.py,我不能讓我從assert_array_length.py文件需要。

回答

0

__import__導入您要求的模塊。但是,如果檢查documentation,你會發現如下:

變量的形式package.module的,通常情況下,頂級包(這個名字了,直到第一個點)是返回,而不是按名稱命名的模塊。

你可能更喜歡importlib.import_module,這將返回package.module而不是package,如果你告訴它導入package.module

+0

非常感謝。這工作完美。 –

相關問題