解决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)
解决python在命令行中运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"的更多相关文章
- 解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"
1.下图为我的自动化测试工程结构图 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误: 大家可能知道我们的工程在IDE(Pycha ...
- Oracle安装后命令行中运行sqlplus / as sysdba出现错误ora-01031:insufficient privileges
Win10安装Oracle后命令行中运行sqlplus as sysdba出现错误ora-01031insufficient privileges的解决方法 情景描述 错误样例 错误分析 解决方法 情 ...
- pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题
运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...
- 在命令行中运行eclipse中创建的java项目
在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行 由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...
- 命令行中运行Java字节码文件提示找不到或无法加载主类的问题
测试类在命令行操作,编译通过,运行时,提示 错误: 找不到或无法加载主类 java类 package com.company.schoolExercise; public class test7_3_ ...
- Python3 引入sqlite3时出现错误:ModuleNotFoundError: No module named '_sqlite3'
在Python3 中内置了SQLite3,但是在编译安装完之后执行: import sqlite3 出现错误: ModuleNotFoundError: No module named '_sqlit ...
- Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlo ...
- Pycharm中使用from appium import webdriver时报错:ModuleNotFoundError: No module named 'appium'
此时先检查一下有没有安装Appium-Python-Client,如果没有安装Appium-Python-Client就在控制台输入pip install Appium-Python-Client进行 ...
- appium windows 命令行中运行以及targetSdkVersionFromManifest failed的解决
启动appium服务,可以通过appium.exe可执行文件启动,也可以通过命令行启动.appium.exe启动需要通过安装可执行文件,命令行启动需要通过npm安装appium.可执行文件启动方式如下 ...
随机推荐
- 正则限制input负数输入
//直接在input标签内加入下面两个事件处理程序即可 onkeyup="this.value=this.value.replace(/\D|^0/g,'')" onafterpa ...
- 从零开始配置一个简单的webpack打包
一.基础配置 1.创建一个名为demo-webpack的文件夹(名称随意) 2.初始化一个package.json文件 //在cmd窗口中使用以下命令快速创建 npm init -y 3.安装webp ...
- flask的多个url对应同一个视图函数
# -*- coding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route('/') def index(): r ...
- vue嵌套数据多层级里面的数据不自动更新渲染dom
可以尝试手动调用更新 主要代码: vm.$forceUpdate() 官网
- 第三章、vue-项目前端 - vue配置 | axios配置 | cookies配置 | element-ui配置 | bootstrap配置
目录 vue项目创建 环境 创建项目 重构项目目录 文件修订:目录中非配置文件的多余文件可以移除 全局配置:全局样式.配置文件 axios前后台交互 cookies操作 element-ui页面组件框 ...
- FPGA学习笔记——点亮LED
软件平台:win7(64bit) + Quartus II 9.1 (64-Bit) 硬件平台:东理电子Easy-FPGA Cyclone II EP2C5T114C8N 这个开发板买了很长时间了,买 ...
- 15.Vue组件中的data
1.组件中展示数据和响应事件: // 1. 组件可以有自己的 data 数据 // 2. 组件的 data 和 实例的 data 有点不一样,实例中的 data 可以为一个对象 // 3. 但是组件中 ...
- zend studio 13.6.1中文乱码的解决办法
进入窗口--->首选项--->常规--->工作空间 window=>preference=>General=>workspace 照图设置后重启软件即可
- #Python语言程序设计Demo - 七段数码管绘制
Python设计七段数码管绘制 单个数码管效果: 设计总数码管效果: Pyhton 编程: #七段数码管绘制 import turtle as t import time as T def drawG ...
- js 获取扫码枪信息
---- js 获取扫码枪不需要记录 lastCode 啊,只需要在时间超出范围的时候重置 lastTime 和 code 就行了.如果 码枪会输入回车,那就在 keyCode === 13 的时候使 ...