从命令行运行python会导致导入错误

时间:2016-12-01 20:14:52

标签: python command-line

我想从命令行运行我的python程序,但它给了我以下错误

ImportError: No module named 'main'

我的文件夹结构如下

Project

|-----main

         |-----__init__.py

         |-----S3Operations.py 

         |-----BusinessOperations.py

我的init.py代码如下

import sys
from S3Operations import Models
sys.path.append("D:/code/Project/main")
if __name__ == '__main__':
    s3=Models()
    s3.test()

我的S3Operations.py代码是

import os.path
from main import BusinessService

class ModelsMlS3(object):

       def test(self):
         print("Testing success")

当我使用命令行运行程序时,我得到以下错误

$ python __init__.py
Traceback (most recent call last):
  File "__init__.py", line 2, in <module>
    from S3Operations import ModelsMlS3
  File "D:\code\Project\main\S3Operations.py", line 11, in <module>
    from main import BusinessService
ImportError: No module named 'main'

任何人都可以建议一个解决方案。

1 个答案:

答案 0 :(得分:2)

你只需要这样做:

import BusinessService  # instead of `from main import BusinessService`

在您的项目中,__init__.py目录中没有Project个文件(包含main.py)。

将其导入为:

from main import BusinessService

您需要在文件夹中创建__init__.py才能将其作为模块。