python相对路径找不到文件_【已解决】python中的相对路径导入库失败No module named...

之前已经在PyCharm中,本地调试期间,解决了相对路径导入的问题:

PyCharm中本地调试是可以导入的:

2f8f9d0bc44ade68a1bba2afe78b4697.png

但是同样的代码:

processData/mysqlQa/MongodbToMysqlQa.py# import os

# import sys

# sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../../util'))

# sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../'))

# sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../..'))

# sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../../util'))

# sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../../util/crifanLib'))

from util import configs

from util.crifanLib import crifanFile, crifanLogging, crifanMysql

以及:

util/crifanLib/crifanHttp.pyfrom . import crifanFile

但是上传到服务器上后,去命令行中运行,就出错了:(debug_xx-wDGPvi3o) [root@xx-general-01 mysqlQa]# python MongodbToMysqlQa.py

Traceback (most recent call last):

File "MongodbToMysqlQa.py", line 16, in <module>

from util import configs

ImportError: No module named 'util'

d3bc58e363d97dce3becead1737451a9.png

所以对于 相对路径的导入,看来还是理解的不够透彻

去搜:

python relative import No module named

试试回到项目根目录去试试,结果问题依旧:(debug_nlp-wDGPvi3o) [root@xx-general-01 debug_nlp]# python processData/mysqlQa/MongodbToMysqlQa.py

Traceback (most recent call last):

File "processData/mysqlQa/MongodbToMysqlQa.py", line 16, in <module>

from util import configs

ImportError: No module named 'util'

加了-m也不对:(debug_nlp-wDGPvi3o) [root@xx-general-01 debug_nlp]# python -m processData/mysqlQa/MongodbToMysqlQa.py

/root/.local/share/virtualenvs/debug_xx-wDGPvi3o/bin/python: Error while finding spec for 'processData/mysqlQa/MongodbToMysqlQa.py' (<class 'ImportError'>: No module named 'processData/mysqlQa/MongodbToMysqlQa')

还是好好看看:

python 相对路径导入 No module named

通过:

感觉是:

“某个包中的一个模块,而你试图以脚本模式执行,但是这种模式不支持相对导入。”

所以只能用sys.path.append加上path的方式去解决。

另外,感觉之前PyCharm中之所以可以正常运行,可能是因为:

2dd1b9e63af736d074dc40d942a63765.png

在Debug调试配置中,有:Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

或许就是把相关路径加入到Python的Path中,使得可以正常运行代码的。

所以就去试试sys.path.append吧

结果试了试:

在项目根目录去-m运行

在项目根目录的父目录去-m运行

去给各级文件夹都加上__init__.py

96d052372736144ea68f451afbd13b1f.png

都还是不行:(debug_nlp-wDGPvi3o) [root@xx-general-01 debug_nlp]# python -m processData.mysqlQa.MongodbToMysqlQa

currentPath=/xxx/debug_nlp/processData/mysqlQa

projectRootPath=/xxx/debug_nlp

utilLibPath=/xx/debug_nlp/util

crifanLibPath=/xx/debug_nlp/util/crifanLib

crifanBeautifulSoup: Can not found lib BeautifulSoup

crifanString

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值