【问题标题】:How to call functions from a python module in a different folder? [duplicate]如何从不同文件夹中的python模块调用函数? [复制]
【发布时间】:2020-07-22 12:38:51
【问题描述】:

我的项目结构是这样的:

/project-name
    app.py
    /python-modules
        login.py
        home.py

我想将 login.py 和 home.py 中存在的一些函数导入 app.py。

我尝试运行from python-modules.login import *,但没有成功。

【问题讨论】:

  • 您在python-modules 中有__init__.py 文件吗?
  • 刚刚在项目根目录和python-modules文件夹中创建
  • 现在再次尝试导入。
  • 我认为您不需要在根目录中添加__init__.py,除非您的项目是一个包,但根据您的项目结构,它看起来不像一个包。
  • @Ipozo 运行了这个命令from python-modules.login import *。在 login.py 中,我有一个函数名 def login():,在 app.py 中,我使用了 login(),但它给出了语法错误。

标签: python


【解决方案1】:

简单的解决方案只需在两个文件夹(即项目名称和 python 模块)中创建空白(空)__init__.py 文件。

【讨论】:

  • 创建,然后呢?
  • 然后就可以了
【解决方案2】:

我应该更改您的软件包(目录)的名称:在您的软件包名称中使用破折号不是一个好习惯(请参阅PEP8

【讨论】:

  • 我确实将破折号更改为下划线,但在问题中没有更改。感谢提及!
  • 是的,这就是问题所在。我没有看到那个细节。包名称必须是有效的 Python 标识符,因此您不能在包名称中使用破折号。您应该将其更改为下划线:python_modules。这就是你SyntaxError的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
相关资源
最近更新 更多