1. 程式人生 > >關於PyCharm匯入自己寫的module時報錯:No Module Named XXX的解決方案

關於PyCharm匯入自己寫的module時報錯:No Module Named XXX的解決方案

本人對Pycharm情有獨鍾,強大的功能再搭配ipython簡直不要太爽。可是就在今天,本人為了使用某些第三方庫,在原來的Python2.7.11版本的基礎上裝了3.6.的版本,結果一頓瞎折騰可,導致之前寫的好多東西都不能import了,報錯No module named xxx

顧名思義,就是Pycharm以及ipython找不到自定義的模組了。但是具體怎麼解決呢?

1、在說這個之前,有一個常識需要明白,就是一個簡單的Python專案的目錄結構(再小點就是一個module),這個很重要。我們知道,一個py檔案就是一個module, 而包含一個__init__.py檔案的目錄就是一個python的包(package),如下圖:


其中,titanic.py 就是一個模組(module), 包含了__init__.py的目錄titanic就是一個包。這樣,我們如果要在pycharm或者ipython裡引用titanic這個模組時,直接可以使用import titanic或者from TitanicSurvived import titanic;保證了這個部分沒問題後,如果pycharm繼續報錯No module named XXX,多半是下面一種情況:

2、開啟Pycharm裡面的settings按鈕,進入設定頁面,再點Build, Execution, Doployment選項,進入如下介面:



注意這部分內容,會給我們一點啟發:


其中WORKING_DIR_AND_PYTHON_PATHS指的就是我們的Python projects的位置。有了上面那段話後,點選pycharm控制檯的Python console選項卡就可以看到:



留意紅色部分,是不是你要匯入的包的所在位置?(當然上圖是我改正後的結果)如果不是,那就好辦了,這時你只要修改python的環境變數就好了;

進入windows的環境變數介面,進入PYTHONPATH進行編輯,如果沒有就新建一個,變數值是你的python專案的位置,如有多個位置,可以在後面追加



搞定之後,再去ipython裡面import試試。是不是OK了?

注:感謝以下兩位朋友的博文:

https://my.oschina.net/leejun2005/blog/109679

http://blog.csdn.net/pwc1996/article/details/52577148

相關推薦

關於PyCharm匯入自己module時報No Module Named XXX解決方案

本人對Pycharm情有獨鍾,強大的功能再搭配ipython簡直不要太爽。可是就在今天,本人為了使用某些第三方庫,在原來的Python2.7.11版本的基礎上裝了3.6.的版本,結果一頓瞎折騰可,導致

用HTMLParser解析html時報No module named ‘htmlentitydefs‘

ror python links href and htm ref over request python3.6用HTMLParser解析html時報錯No module named ‘htmlentitydefs‘或No module named ‘markupbase‘

pycharm匯入自己的模組時,模組下方出現紅色波浪線的解決方案

  這種情況其實可以不用管,是可以正常執行的;  但是,如果看著不舒服,可以進行以下過程進行設定即可:  file->settings->project->project structure->點選專案路徑->點選Excluded。然後確定就正常顯示了。

pycharmpycharm上安裝tensorflow,報AttributeError: module 'pip' has no attribute 'main' 解決方法

pycharm上安裝tensorflow,報錯:AttributeError: module 'pip' has no attribute 'main' 解決方法     解決方法: 在pycharm的安裝目錄下,找到helpers/packaging_tool.py檔案,

【環境搭建系列】pycharm中報no module named numpy

1、環境描述 安裝了anaconda3,並且在jupyter notebook中,可以呼叫numpy。 但是在pycharm中就報錯:no module named numpy 2、解決方法 這是因為pycharm預設的python沒有選擇anaconda自帶

pycharm環境下已經有HTMLTestRunner.py檔案時,執行程式仍然報No module name HTMLTestRunner

若遇到如上報錯,可以用以下方法解決首先檢視工程的路徑進入setting-project Interpreter檢查pycharm setting裡面路徑是否正確,看路徑是否為當前虛擬環境venv的路徑,下圖路徑不正確(圖一不正確)圖一當檢查發現路徑不正確的時候,將整個venv

將.xls檔案匯入SQL SERVER 2005時報外部表不是預期的格式,解決方法

這個主要是由於excel檔案格式不標準導致的 解決方法: 把該excel檔案另存為一下,在匯入即可。 注意: sqlserver2005好像不識別.xlsx的,同樣的,我們另存為時,存為.xls即可匯入。

創建Maven Module時報The parent project must have a packaging type of POM

mage ren 分享 報錯 pom ima mave parent 目的 創建Maven Module時報錯:The parent project must have a packaging type of POM 解決的辦法,是把父項目的Packaging改

python的卸載方式和運行yum報No module named yum

package 其他 too alt mir edits oca 情況下 test 公司測試機環境不知道給我卸了什麽包,導致yum運行報錯狀況: 系統版本:Red Hat Enterprise Linux Server release 6.2 (Santiago) 內核版本

mac使用easy_install安裝pip時報 ImportError: No module named extern

1.首先根據以下步驟安裝pip: 1.Install easy_install curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python 2.Install pip s

python cmd 啟動python專案報no module namedxxx

場景:使用pycharm編輯器啟動pyhon專案時可以啟動,但使用cmd啟動時,會報:no module named “xxx”的錯誤,此時,有兩種情況:   1.no module named “xxx”裡的“xxx”是python的庫名;   此時說明引用庫沒成功,可能是因為電腦裡有多個版本的pyth

python 3.X系列報No module named 'urllib2'

查閱Python官方文件裡面已有說明: Note The urllib2 module has been split across several modules in Python 3.0 named urllib.request and urllib.error. The

yum安裝nginx時報No package nginx available. Error: Nothing to do

在安裝nginx時出現以下錯誤: [[email protected]1 ~]# yum install nginx -y Loaded plugins: fastestmirror, re

Python3環境下django連線mysql報No module named 'MySQLdb'

原因是python3中使用了一個新的模組,叫做pymysql,可以直接pip安裝 pip安裝完成後,在django專案的manage.py檔案中新增下面兩行就OK了: from django.cor

python 3.x報No module named 'cookielib'或No module named 'urllib2'

1.    ModuleNotFoundError: No module named 'cookielib'   Python3中,import  cookielib改成 import  http.cookiejar,然後

解決返回JSON時報No converter found for return value of type:

exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentExc

mysql資料庫操作時報Unknown table engine 'InnoDB"解決方法

原因可能是mysql資料庫沒有使用InnoDB引擎,解決方法: 1 找到安裝路徑下的bin資料夾,找到my.ini檔案。 2開啟檔案,找到“skip-innodb”這句話,在前面輸入#號,即將這句話遮蔽掉。 在2中的操作中,系統可能會提示禁止訪問,這裡用的是個巧妙方法: 將

django報No module named urls

django專案:url.py 配置 Exception Value:  No module named urls 看的是django+book.pdf,書上使用的使用的是老版本的django, 如果配置為:    from django.conf.urls.defaults import * urlp

linux 終端啟動圖形化程式介面時報No protocol specified

這是因為Xserver預設情況下不允許別的使用者的圖形程式的圖形顯示在當前螢幕上. 如果需要別的使用者的圖形顯示在當前螢幕上, 則應以當前登陸的使用者, 也就是切換身份前的使用者執行如下命令 xhost + 遠端訪問時也會出現類似問題:  第一步:用root登陸

import theano時報ImportError: No module named cPickle

>>> import theano Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2