【问题标题】:Python 3.6: Import subdirectorys not working in PycharmPython 3.6:导入子目录在 Pycharm 中不起作用
【发布时间】:2020-01-20 06:44:13
【问题描述】:

我有一个 Pycharm 项目,我在其中复制了两个 github 项目(下载 zip 并将粘贴复制到项目中)。我的问题是我无法访问位于根目录下的 from main。

由于某些未知原因,来自 .语法只显示我自己创建的文件/文件夹。

我正在尝试访问存在我要导入的类 TFNET 的构建模块

from darkflow-master.darkflow.net.build import TFNET

【问题讨论】:

  • 你的主文件在哪里?

标签: python


【解决方案1】:

下载这样的目录通常不是在 python 项目中包含外部依赖项的方式。

更传统的方法是不使用pip 安装项目,看起来darkflow 提供了有关如何执行此操作的信息。

或者,只需确保库在您的 PYTHONPATH 中,看起来 pycharm 有办法做到这一点:PyCharm and PYTHONPATH

【讨论】:

  • 感谢您的回复。我对 python 和项目结构非常陌生。我在安装 pip 时遇到了问题,所以我想我会尝试只下载软件包并从那里开始。我不明白该怎么办。什么是 Cython 扩展以及如何使用它们?但是我按照python路径说明右键单击项目中的任何文件夹选择“标记目录为”选择“源根”我将darkflow-master标记为源根,但它仍然无法正常工作。 imgur.com/a/lOshmNU
  • 学习如何使用 pip 绝对值得您学习,但如果您想让子目录正常工作,请提供有关 darkflow-masterlabellmg-master 目录内容的信息。
  • 不知何故我设法让它工作。有什么技巧可以让我学习如何更好地使用 pip?
【解决方案2】:

字里行间,听起来您已经从 github 下载了两个库,并将它们复制到您的项目中。

Python 需要知道在哪里可以找到源文件。

如果你想这样做,你需要告诉你的 python 环境在哪里可以找到新的源。当你在 python 中时,Pycharm 会照顾 python 环境。

请看https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.html

但这不会告诉 Pycharm 之外的 python 在哪里可以找到你的库源代码。

pip 很可能是答案。 pip 可以全局安装或在 python 虚拟环境中安装,在任何一种情况下,它都会将库代码放在 python 期望找到它的位置。

关于这一点,请了解python虚拟环境。这些是独立的 python 迷你世界。在 venv 中,您可以使用特定的包运行特定版本的 python。 Pycharm 与它们配合得很好,使用 pycharm 很容易设置虚拟环境。当您在 venv 中时,pip 将安装到 venv 中,因此不会触及您的系统 python 或任何其他项目的 python。

此外,pip 通常从官方存储库 (pypi) 安装,但您可以告诉它使用 git 存储库作为安装源。通常编写库的人会将他们的成熟版本发送到 pypi,因此从 git 存储库中获取是不寻常的,但如果您想要最新版本,或者如果作者尚未发布库,这是一个选项。

请注意,pip 不适用于任何任意 python 代码。它必须设置为被 pip 视为 python 包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-22
    • 2015-02-08
    • 1970-01-01
    • 2023-03-03
    • 2018-06-10
    • 2022-01-16
    • 1970-01-01
    • 2013-08-22
    相关资源
    最近更新 更多