从命令行执行python脚本:导入时出错
问题描述:
我已经用Eclipse在Python中编写了一个小脚本,并且它在从Eclipse执行时运行。从命令行执行python脚本:导入时出错
>python test.py argument1 argument2
from src import Tests, ImportError: No module named src
脚本存储与下列文件夹:
ScriptFolder
.input
.report
.src
..test.py
..Tests
...Test1.py
...Test2.py
..TestUtils
...FileUtils.py
这是我做的test.py进口的方式:不过,这并不在命令行工作
from src import Tests
from TestUtils import FileUtils
关于初始化 .py文件中,一个与test.py为空共享文件夹,以及一个到测试文件夹中有这样的内容:
import Test1
import Test2
而且初始化 .py文件到TestUtils有这样的内容:
import FileUtils
的问题是,如果我改变行from src import Tests
只是import Tests
我在Eclipse中收到错误:Unresolved imports: Tests. found at src.Tests
我该如何使它适用于Eclipse和命令行?
答
sys.path.append(path_to_src_directory)
这将添加到默认路径,其中蟒蛇查找模块的路径。 由于目前您的src目录的路径并不为python所知,因此会给出No module named src
错误。 此外,您的src目录似乎没有__init__.py
文件。
我不明白为什么我需要将__init__.py文件放入根文件夹。无论如何,我也导入TestConstants.py,它是根文件夹,并工作。我从TestUtils中导入FileUtils.py,并运行。但是不可能导入测试。为什么python知道在哪里查找这些文件而不是测试文件?我怎样才能使用sys.path.append调用?我想绝对路径不会是一个好的实践,所以我怎样才能以相对的方式使用它? – 2013-02-25 08:57:34
“我不明白为什么我需要'__init __。py'”......“为什么Python知道在哪里查找这些文件而不是测试文件”第二个问题是第一个问题的答案。 – 2013-02-25 09:07:57
@DanielRoseman但我明白它的目的是进入Tests文件夹,将每个py文件导入到该文件夹中,这样你就可以导入所有文件,只需导入'测试'。但我不明白它的目的为根文件。事实上,如果我编辑root的__init__.py文件并写入导入测试,问题仍然存在 – 2013-02-25 09:15:56