參考文章:https://blog.csdn.net/qq_42873554/article/details/106604859
自定義的模塊,導入執行后始終提示找不到該模塊。
如 ModuleNotFoundError: No module named 'utlis'
python程序中使用 import XXX 時,python解析器會在當前目錄、已安裝和第三方模塊中搜索 xxx,如果都搜索不到就會報錯。
使用sys.path.append()方法可以臨時添加搜索路徑,方便更簡潔的import其他包和模塊。這種方法導入的路徑會在python程序退出后失效。
解決方法一
關閉Pycharm
刪除 .idea、*.iml [項目結構文件]
重新打開這個工程
然后就不會報錯
解決方法二
更改環境變量(一次修改永久生效)
管理員權限修改:/etc/profile。在最后一行加上:
export PYTHONPATH=$PYTHONPATH:/home/utlis/
然后運行如下代碼,更新立即生效
source /etc/profile
解決方法三
import sys sys.path.append("..") # 模塊父目錄下的model文件中,相對路徑 from model import aimport sys
或者在導入模塊之前(每個.py文件都需要加)
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這一點相當於每個文件按路徑都得加一行這個路徑。
