pythonn文件在命令行包导入问题


命令行下执行python找不包的解决方法

1.为什么会出现这样的问题?

包是向下搜索机制.

2.为什么idle中执行没有报找不到包的问题?

python搜索机制,在idle中是以项目为根路径, 所以它的搜索机制是从项目根路径开始向下搜索.

3.为什么命令行执行时会报找不到包的错误?

这是因为命令行执行的时候,是以当前执行的.py文件所在目录级别的下一级开始搜索.

1
2
3
4
5
6
7
8
9
10
11
root

.......web(一级目录)

......sett(二级目录)

.......views(二级目录)

......service.py(二级目录) (这个命令行执行文件. 命令行运行时,提示找不到views以及sett中的包.)

.......包搜索级别(三级目录)

法一

1
2
3
4
5
6
7
8
#########################################################
#将根目录加入sys.path中,解决命令行找不到包的问题
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
#########################################################

以上增加到哪个级别要,根据实际情况,灵活运用. 其实目的就是指定一个顶级目录.来克服向下搜索包的问题.

法二

在web平级别新建一个py文件. 然后将要执行的py文件导入进去即可.(并不需要作其它操作,看实际情况.)

1
from web import service

法三

cmd命令行进行项目根目录,采用相对路径去执行该py文件

1
2
3
cmd
cd d:\test_project
./main.py #相对执行

原文


本文标题:pythonn文件在命令行包导入问题

文章作者:TTYONG

发布时间:2020年04月11日 - 10:04

最后更新:2022年03月07日 - 20:03

原始链接:http://tianyong.fun/pythonn%E6%96%87%E4%BB%B6%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8C%85%E5%AF%BC%E5%85%A5%E9%97%AE%E9%A2%98.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%