繁体   English   中英

python从不同目录结构导入模块

[英]python Import module from a different directory structure

     common/src/validation/file1.py

在common / src / validation /和common / src /文件夹中定义了“ _init_ ”。

     common/test/validation/file2.py
     common/test/validation/case/file3.py

在file2.py和file3.py中,我想从file1.py导入类。

我在file2.py和file3.py中给出以下行:

      from file1 import class1  

我目前收到错误消息:

      #ImportError: No module named file1

sys.path.append应该是什么?

您基本上可以将PYTHONPATH更改为common并从那里运行。 然后引用与此相关的所有导入路径。

像这样:(假设您是共同的,而您的主要对象在file3.py中)

PYTHONPATH=. python test/validation/case/file3.py

确保在导入的任何目录中都有__init__.py文件(此文件的内容无关紧要)

我通常喜欢在每个项目的根目录中放入一个run.sh文件,其中包含该行的某些版本(指向我的主要函数所在的位置)。

它通常将包含一个简单的内容,例如:

#!/bin/bash
source some_env/bin/activate # start the relevant environment if you have one
PYTHONPATH=. python src/main.py # set PYTHONPATH and run
deactivate # exit the relevant environment if started one

另一个选择是执行此操作,但并不那么优雅。

如果要从文件夹导入文件,则应有一个名为

__init__.py 

在该文件夹中(也可以是空白文件)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM