解决python3在项目目录下找不到包(No module named 'views')
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决python3在项目目录下找不到包(No module named 'views')相关的知识,希望对你有一定的参考价值。
参考技术A 一、首先看看目录的结构:二、我在search.py中导入views包下的production.py和search.py,运行search.py的时候直接报错找不到views包,其实问题就在于包的搜索路径,因为是在flaskr这个目录下运行的,打印出来的包搜索路径为(['/project/my_flask_project/flaskr', '/usr/local/python3/lib/python36.zip', '/usr/local/python3/lib/python3.6', '/usr/local/python3/lib/python3.6/lib-dynload', '/usr/local/python3/lib/python3.6/site-packages']),解释器会把/project/my_flask_project/flaskr加入导搜索路径,自然导包的时候,也会在这个路径下搜索,找不到就报错。
三、所以,知道问题所在了,只需要把这个项目的路径加入到搜索路径即可
sys.path.append(os.path.abspath('..'))
这个操作是把当前目录的上一级目录添加到包搜索路径中,这样问题就解决了
解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"
1.下图为我的自动化测试工程结构图
我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误:
大家可能知道我们的工程在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])
如果目录中包含你所在的工程根目录,此时你再查看一下你的所有的目录下是否包含__init__文件,
当我们导入另外一个包下的模块时,首先需要判断这个包是否为python包,而__init__文件就是
用来证明这个目录是一个python包的目录!
而我在按照网上的一些操作完成后,发现我依然运行失败,此时我发现我的根目录下也有一个__init__文件
而我删除了该文件之后,运行一切正常,我也不知道具体的原因,感觉有点奇怪!
以上是关于解决python3在项目目录下找不到包(No module named 'views')的主要内容,如果未能解决你的问题,请参考以下文章
python3.5中,import sqlite3 出现 no module named _sqlite3的解决方法
如何解决ubuntu下找不到libgtk-x11-2.0.so.0