python基礎--python自定義模塊找不到


參考文章:https://blog.csdn.net/qq_42873554/article/details/106604859

自定義的模塊,導入執行后始終提示找不到該模塊。

如 ModuleNotFoundError: No module named 'utlis'

 

python程序中使用 import XXX 時,python解析器會在當前目錄、已安裝和第三方模塊中搜索 xxx,如果都搜索不到就會報錯。

使用sys.path.append()方法可以臨時添加搜索路徑,方便更簡潔的import其他包和模塊。這種方法導入的路徑會在python程序退出后失效。

os.getcwd()用於獲取當前工作目錄

 

解決方法一

關閉Pycharm

刪除 .idea、*.iml [項目結構文件]

重新打開這個工程

然后就不會報錯

 

解決方法二

更改環境變量(一次修改永久生效)

管理員權限修改:/etc/profile。在最后一行加上:

export PYTHONPATH=$PYTHONPATH:/home/utlis/

然后運行如下代碼,更新立即生效

source /etc/profile 

 

解決方法三

import sys
sys.path.append("..")  # 模塊父目錄下的model文件中,相對路徑 
from model import a

或者在導入模塊之前(每個.py文件都需要加)
import sys
sys.path.append(r'/home/utils/')

在pycharm中,可以通過venv來建立工程,運行等等。

但是一旦把這個工程文件夾拿到其他地方運行,而且不是在venv環境中運行,就有可能遇到有些module找不到的情況。

 
        

此時,可以通過增加path的方法來解決:

 
        
1
2
3
import sys
sys.path.append( './venv/lib/python3.6/site-packages' )
sys.path.append( './venv/lib64/python3.6/site-packages' )
 
        

這段一定要加在import 其他module之前。

 

在知乎上看到一篇關於sys.path.append("..")介紹的文章

類似這種,為什么不要用sys.path.append("../"),在某些根目錄情況下仍然會報錯。

正確的做法是:

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

python這一點相當於每個文件按路徑都得加一行這個路徑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM