当前位置: 首页 > 知识库问答 >
问题:

用python导入[副本]

马臻
2023-03-14

我读了很多与我所问的问题相关的答案,但我仍然不明白如何使我正在尝试的事情成为可能。所以让我们直奔主题。我将报告我的应用程序的简化版本。

    null

现在,集群和解析器包中包含的python脚本应该使用support_class中包含的myclass.py。

我尝试了相对导入,但它们不起作用,因为我希望直接运行集群和解析器包中包含的脚本,并且我不想使用-m选项。

python parser.py[参数]

from ..supportClass import myClass
sys.path.insert(0, "~/project/src") 
from support_class import myClass.py 

提前谢了。

共有1个答案

潘俊楚
2023-03-14

让我们从项目的文件夹体系结构开始:

MyProject/
└── src
    ├── clustering
    │   ├── __init__.py
    │   └── clustering.py
    ├── parser
    │   ├── __init__.py
    │   └── parser.py
    ├── support_class
    │   ├── __init__.py
    │   └── support.py
    └── main.py  

如果我没有弄错的话,问题是您希望从parser.pyclustering.py中导入support.py,并能够在需要时独立运行这两个文件。给你两个字:

(还有一个,在找到一个真正的其他解决方案之后;):PythonPath)

if __name__ == "__main__":
    import sys
    import os

    PACKAGE_PARENT = '..'
    SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
    sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))

    from support_class.support import Support
else:
    from support_class.support  import Support
from support_class.support  import Support

然后,Python clustering.pyPython parser.py随心而动!

这使得它成为https://stackoverflow.com/a/16985066/3425488的副本

 类似资料:
  • 当我使用相对导入时,我的代码运行正常,但pycharm抱怨。总之。py,导入行用红色下划线,我没有完成。 如果我尝试通过在任何地方添加“app.”来切换到使用绝对导入,pycharm 很高兴,但代码不再运行。我得到:“ModuleNotFoundError:没有名为'app'的模块” 这是我的项目的树形结构。这是我的test_import文件夹的内容: main.py mul.py: sum.py

  • 问题内容: 在有效的去它说,这些类型的进口平均副作用。我已经阅读了几个SO答案,但没有一个解释什么是。有人可以详细说明这个词吗? 问题答案: 当他们说“导入副作用”时,它们实际上是指静态使用的代码/功能。这意味着仅导入软件包将导致一些代码在应用程序启动时执行,从而使我的系统处于与未导入该软件包的状态不同的状态(例如示例中注册处理程序的代码,它也可能放下config文件,修改光盘上的资源等)。有效的

  • 问题内容: 我正在导入许多不同的脚本,因此在文件的顶部,它会被导入语句弄得乱七八糟,即: 有没有办法将所有这些都移动到其他地方,然后我要做的就是导入该文件,所以它只是一个干净的导入? 问题答案: 当然有;只需在主文件所在的目录中创建一个名为的文件,然后将导入文件放置在该目录中即可。然后,您可以简单地在主脚本中使用。

  • 当我使用要求时,我得到引用错误:要求没有定义,当我使用导入/导出时,我得到同步错误:不能在模块外部使用导入语句。 是否可能是因为我试图在连接到超文本标记语言文件的JavaScript文件上使用此命令?因为当我在server.js文件(没有连接到任何超文本标记语言文件)中使用此命令时,我通常可以使用要求。 如果有,我该如何克服这个问题。我得到了与每个超文本标记语言页面连接的JavaScript文件,

  • 问题内容: 如何将winDLL导入python并能够使用其所有功能?它只需要双打和字符串。 问题答案: 您已经标记了问题ctype,所以听起来您已经知道答案了。 该ctypes的教程非常出色。阅读并理解该说明后,您将可以轻松完成。 例如: 还有我自己的代码中的一个示例:

  • 问题内容: 我可能会丢失一些显而易见的东西,但是无论如何: 当您像在python中那样导入软件包时,您可以直接使用任何子模块/子软件包。例如,这有效: 但是我有自己的软件包,其结构如下: 并且这里相同的逻辑不起作用: 我究竟做错了什么? 问题答案: 您需要导入子模块: 您正在寻找的是。您可以通过将(或)放入来解决它,然后Python就能在其中找到。但我建议使用我的第一个建议。