2016-12-01 109 views
0

我要運行命令行我的Python程序,但它給了我下面的錯誤從從命令行運行Python給人導入錯誤

ImportError: No module named 'main' 

我的文件夾結構如下

Project 

|-----main 

     |-----__init__.py 

     |-----S3Operations.py 

     |-----BusinessOperations.py 

我的初始化。 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' 

任何一個可以請提出一個相同的解決方案。

+2

只要嘗試'導入BusinessService'(即沒有*導入主要*),它應該工作 –

+0

這解決了我的問題。你可以寫它作爲答案,所以我可以標記爲解決 –

回答

2

你只需要做:

import BusinessService # instead of `from main import BusinessService` 

在你的項目中,存在於Project目錄(持有main.py)沒有__init__.py文件。

對於導入它想:

from main import BusinessService 

你需要以使其作爲模塊來創建的文件夾中__init__.py