Python导入和文件夹结构

2024-05-19 18:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件结构:

command.py
simulations
  basis
    basis.py
  hamiltonian
    hamiltonian.py

其中没有扩展名的名称是文件夹。你知道吗

  • command.py正在导入basis.pyhamiltonian.py,如:

from basis.basis import Basis

from hamiltonian.hamiltonian import Hamiltonian

其中BasisHamiltonian是两个类。你知道吗

我可以运行command.py很好,所有导入都可以。你知道吗

  • 现在,我想单独使用hamiltonian.py,但它需要导入basis.py

  • 为了command.py正常工作,hamiltonian.py中的导入必须是from basis.basis import Basis

  • 为了哈密顿量.py要独立运行,导入需要

    os.chdir('..')
    from basis.basis import Basis
    但是这使得command.py不再工作。

---

1)只有当hamiltonian.py独立运行时,我才能运行 os.chdir('..')吗?比如if name == 'main'?你知道吗

2)有没有更优雅的解决方案?你知道吗


Tags: 文件frompyimport文件夹名称osbasis
1条回答
网友
1楼 · 发布于 2024-05-19 18:19:22

1)你可以,但这不是个好主意。最好避免使用os.chdir。你知道吗

2)您需要os.chdir这一事实表明您正在尝试在本地运行它,如:

python ./simulations/hamiltonian/hamiltonian.py

如果是这种情况,请使用:

PYTHONPATH=. python ./simulations/hamiltonian/hamiltonian.py

如果您正确地安装了python包,并且您的包具有@E.Serra建议的适当的__init__.py文件,那么您就不会遇到这个问题。你知道吗

相关问题 更多 >