解决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')的主要内容,如果未能解决你的问题,请参考以下文章

VS2012调试出错,在debug目录下找不到exe文件。

python3.5中,import sqlite3 出现 no module named _sqlite3的解决方法

Python3 下找不到urllib2的问题

如何解决ubuntu下找不到libgtk-x11-2.0.so.0

【Ubuntu 虚拟机PyCharm配置问题】 No module named numpy 问题解决

xctool 构建失败:在“Debug-iphonesimulator”下找不到测试包