ModuleNotFoundError: No module named 'xlutils.copy'; 'xlutils' is not a package


解決python在命令行中運行時導入包失敗,出現錯誤信息 "ModuleNotFoundError: No module named ***"

 

轉自https://www.cnblogs.com/dreamyu/p/7889959.html

https://www.cnblogs.com/lifeofershisui/p/8135702.html

大家可能知道我們的工程在IDE(Pycharm)中運行和我們在cmd中運行的路徑是不一樣的,在pycharm中運行時,

會默認pycharm的目錄+我們的工程所在目錄為運行目錄,而在cmd中運行時,會以我們的工程目錄所在目錄來運行

而在import包時,會首先從pythonPATH的環境變量中來查看包,如果沒有你的PYTHONPATH中所包含的目錄沒有

工程目錄的根目錄,那么你在導入不是同一個目錄下的其他工程中的包時會出現import錯誤

解決方法:在你運行的文件中將你的工程目錄加入到PYTHONPATH中,具體方法如下:

 import os,sys

sys.path.append("path")  //path為你的工程根目錄的絕對路徑

 

如果此時你運行時依然報錯,請先檢查是否將根目錄加入到了PYTHONPATH中,方法為:

import os

PATH = os.environ

for key in PATH:

  print(key,PATH[key])

 

其他設置PYTHONPATH方法:

PYTHONPATH是Python搜索路徑,默認我們import的模塊都會從PYTHONPATH里面尋找。

打印PYTHONPATH:

import os print sys.path >['', '/usr/local/lib/python2.7/dist-packages/dlib-19.4.0-py2.7-linux-x86_64.egg', '/home/ershisui',...]

注意:sys.path 也可以用 os.sys.path 替換,兩個應該是同一個命令,推薦使用sys.path, 因為 os.sys.path 在python document 中好像沒有提及.

設置PYTHONPATH:

  • 方法一:命令窗口添加路徑

     export PYTHONPATH=$PYTHONPATH:/home/ershisui

    注意:此方法只在當前命令窗口生效,即如果打開一個新的Terminal 窗口,定位到當前目錄, 打印PYTHONPATH 是沒有剛才加入的路徑的.

  • 方法二:在python 中添加:

      import sys sys.path.append('/home/ershisui/')

    實例

  • Tensorflow 的 object detection API 模塊中安裝教程中

      export PYTHONPATH=$PYTHONPATH:`pwd`:'pwd'/slim
    即添加了python 路徑:(pwd 是輸出當前目錄的命令,這里為什么可以這樣,還不懂)添加了兩個路徑,分別為 /home/.../models-master/research 和  /home/.../models-master/research/slim(可以驗證在research 文件夾下有slim 文件)
  • Tensorflow 的 object detection API 模塊中object_detection_tutorial.ipynb 中

     sys.path.append("..")

    即在python 中添加了新的搜索目錄,即當前目錄的上一層(在這里應該是 /home/.../models-master/research)


免責聲明!

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



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