【问题标题】:Python `pip install` from a local project - Modules can't find each other来自本地项目的 Python `pip install` - 模块找不到彼此
【发布时间】:2017-12-28 01:39:49
【问题描述】:

我有一个在virtualenv (Python 3.6) 中运行的开发服务器,我想在其中安装一个本地 python 项目。如果我在virtualenv 处于活动状态时运行pip install -e /path/to/myproject,那么在那个环境中我可以import myproject。我也可以from myproject import submodule。但是如果我这样做from myproject import othermodule,我会得到ModuleNotFoundError: No module named 'submodule'.othermodule 导入submodule)。如果我来自myproject 的根import myproject,则不会发生这种情况。

目录结构为:

/path/to/myproject
    setup.py
    myproject/
        __init__.py
        submodule.py
        othermodule.py
        ...

setup.py 看起来像:

setup(
name='myproject'
packages=['myproject']
)

发生了什么事?为什么找不到这些库?

【问题讨论】:

  • submoduleothermodule 中有什么内容?
  • @WillemVanOnsem 相关信息是 othermodule 导入 submodule(反之亦然)。除此之外,还有很多代码。你需要知道一些具体的事情吗?
  • othermodule 究竟是如何导入submodule 的?请出示import 声明。

标签: python python-3.x pip virtualenv python-module


【解决方案1】:

问题在于 Python 3 的相对导入必须是显式的。

othermodule,而不是

import submodule

我需要写:

import myproject.submodule

import .submodule

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 2021-12-04
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2020-07-23
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多