python virtualenv导入失败

问题描述 投票:0回答:2

我的源代码树如下。我正在使用python3.7

proj/
  src/
    __init__.py
    module1.py
    module2.py
  venv
  __main__.py

[__main__.py导入module1,后者导入module2。我正在虚拟环境中运行它。见下文:

__main__.py中:

import src.module1
...

module1.py中:

import module2
...

请注意,我确实在__init__.py目录中具有src文件。

[当我运行__main__.py时,最终出现导入错误:

ModuleNotFoundError: No module named 'module2'

[我发现,如果我在虚拟环境之外运行程序,module1可以导入module2,但是在venv中,我遇到了此错误。我很困惑如何正确地执行此工作,因为我相信我在这里使用绝对导入和__init__.py正确地完成了所有操作。

python-3.x python-import
2个回答
0
投票

src模块中未使用绝对路径,因此我实际上没有使用绝对路径,这是我的问题。换句话说,将module1.py更改为:

import src.module2
...

0
投票

Python导入非常敏感!前几天我打破了我的整个项目...

第一:

export PYTHONPATH=/path/to/proj/

第二:

import src.module2

第三:在main.py中,如果要调用单个函数或变量,请执行[]

from src.module2 import x,y

用此代替... import *

© www.soinside.com 2019 - 2024. All rights reserved.