MacOS Pyharm 环境下,Python 引用其它兄弟目录下的模块(含成功环境截图)

python开发过程中遇到引用其它目录下的模块的问题。网上查了很多资料,都没有成功,造成了很多误导,浪费了很多时间,现将成功的方法,记录如下,希望可以帮助后来人:

以前的坑放在这里,提示后人

1、不需要 __init__py 文件,任何目录都不需要!

2、不需要将目录标记为任何特殊文件夹!

3、sys.path.aapend("..")是错误的,通过print发现只是添加了一个字符串“.."并没有自动将“.."转换为上级目录的路径!

pycharm中环境、文件位置、代码、执行结果如下图所示

代码如下:复制后,路径名“Basic”需要改下(取得父目录路径的代码有误,新的代码更新如下)

#这里test.py中的代码

import sys, os


print("打印原本的sys.path内容")
for li in sys.path:
    print(li)

print("打印添加上级目录和模块所以目录的路径后的sys.path")


current_path = os.getcwd().replace('\\', '/')  # 获取当前路径
i = current_path.rindex('/')
parent_path = current_path[:i]  # 取得上级目录路径

sys.path.append(parent_path) #添加到上级目录路径到sys.path中
aa = parent_path + r"/Basic" #引用其经目录时,需要改这里。
sys.path.append(aa)# 将包所在的路径加到sys.path中
for li in sys.path:
    print(li)


from DataHelper import MysqlDbHelp

mysql = MysqlDbHelp()
mysql.getPrint() # getprint() 是一个测试调用是否成功的方法,只是打印一个字符串

新的代码:(考贝代码以下代码代替上边的代码即可)


import sys,os
current_path=os.path.dirname(__file__) #获取当前文件的路径
parent_path=os.path.dirname(os.path.dirname(__file__)) # 得到上父目录的路径
sys.path.append(parent_path)  # 添加到上级目录路径到sys.path中
import_path = parent_path + r"/Basic"
sys.path.append(import_path)  # 将包所在的路径加到sys.path中

思考:将来是不是可以做成一个函数,将所有目录都一起加载好,然后在程序的启动入口,调用一下。这样就不用担心找到模块的问题了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聊产品敲代码的项目经理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值