在终端中运行Python脚本调用包

时间:2014-04-11 00:32:59

标签: python terminal package

我有一个包含以下树的Pycharm项目:

-- Sources
   |--__init__.py
   |--Calculators
      |--__init__.py
      |--Filters.py
   |--Controllers
      |--__init__.py
      |--FiltersController.py
   |--Viewers
      |--__init__.py
      |--DataVisualization.py
   |--Models
      |--__init__.py
      |--Data

我的Filters.py调用的地方:

import Sources.Models.Data as Dt

我的FilterController.py调用:

import Sources.Calculators.Filters as Fs
import Sources.Models.Data as Dt

等等。

首先,我的__init__.py实际上是我的主要。它的导入如下:

import Calculators.Filters as Fs
import Controllers.FiltersController as Fc
import Models.Data as Dt
import Viewers.DataVisualization as Dv

我不认为我的__init__.py作为我的是正确的,但是我可以这样做__Filters.py__和__FilterController.py__找到来源。当我用Pycharm运行它时效果很好。但是,当我在终端中运行__init__.py时,我遇到了一堆像这样的错误:

Traceback (most recent call last):
  File "__init__.py", line 10, in <module>
    import Calculators.Filters as Fs
  File "/Users/paulaceccon/PycharmProjects/UncertaintyQuantificationOfFilters/Sources/Calculators/Filters.py", line 6, in <module>
    import Sources.Models.Data as Dt
ImportError: No module named Sources.Models.Data

我想知道如何正确地执行此操作,以便使用正确的Python方式来使用包并且能够在没有Pycharm的终端中运行它。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你有一个错字。在文件夹中,您将其命名为“模型”。但是在导入时,您将其命名为“模型”。此外,您需要将目录添加到Python的搜索路径中:

package = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(package)

您应该在outest init .py

中添加这些行