如和在不同目录之间引用模块-python
#2025823
"""
说明:
原来是在同一个目录(文件夹下)创建模块utils.py ,然后创建demo.py调用这些模块。
但是时间一久,目录变得臃肿,不好看,因此选择将模块utlis.py单独放在一个文件夹A里
在文件夹B里创建demo.py进行调用
"""import sys
import os
import open3d as o3d#方法1:
# 添加mushroom文件夹到Python路径
# sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'mushroom_utlis'))##a = os.path.join(os.path.dirname(__file__), '..', 'mushroom_utlis')
##print(a) #E:\pycharm\2024.11.28open3d\demo\use_mushromm_utlis\..\mushroom_utlis# 获取当前文件的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
print(f'current_dir={current_dir}') #current_dir=E:\pycharm\2024.11.28open3d\demo\use_mushromm_utlis
"""
__file__ 是当前 Python 脚本的文件名(可以是相对路径或绝对路径)。
os.path.abspath(__file__) 获取当前脚本的绝对路径。
os.path.dirname(...) 返回这个绝对路径的目录部分,也就是当前脚本所在的文件夹路径。
"""
# 获取mushroom文件夹的路径
mushroom_dir = os.path.join(current_dir, '..', 'mushroom_utlis')
print(f'mushroom_dir={mushroom_dir}') #mushroom_dir=E:\pycharm\2024.11.28open3d\demo\use_mushromm_utlis\..\mushroom_utlis
# 将mushroom文件夹添加到Python路径
"""
os.path.join(...) 会根据操作系统自动拼接路径。
.. 表示上一级目录。
所以这句代码的意思是:从 current_dir(即 /home/user/project/src)向上退一级,变成 /home/user/project,再进入 mushroom_utlis 文件夹。
"""
sys.path.append(mushroom_dir)#方法3
# sys.path.append(r'E:\pycharm\2024.11.28open3d\demo\mushroom_utlis')from create_mesh_utils import create_corrd_meshmesh = create_corrd_mesh()
o3d.visualization.draw_geometries([mesh])
注意:
虽然三种方法均可以运行, 但是会存在报错(这个就暂时不管了,能跑的通就行)