使用sys.path添加了绝对路径,但仍然无法import相应的自己编写的.py文件

写了一个神经网络的代码程序,想要跨文件引用其他的py文件。
已经使用了sys.path.append()添加地址,可以成功print出来该地址。
但是尝试import却出错。

file =
r”/Users/mason-liu/Downloads/Machine_Learning/Fish_book/dataset”

sys.path.append(os.path.dirname(os.path.abspath(file)))

from mnist import load_mnist

Jason990420
最佳答案

Check if it is correct path to your import module when you execute your script.

os.path.abspath(r"/Users/mason-liu/Downloads/Machine_Learning/Fish_book/dataset")
10个月前 评论
DongMing (楼主) 10个月前
讨论数量: 4
Jason990420

You can find it’s wrong path to your user module mnist

os.path.abspath
on most platforms, this is equivalent to calling the function normpath() as follows:
os.path.normpath(join(os.getcwd(), path)).

d:\>python
Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> file = r"/Users/mason-liu/Downloads/Machine_Learning/Fish_book/dataset"
>>> import os, sys
>>> file = r"/Users/mason-liu/Downloads/Machine_Learning/Fish_book/dataset"
>>> path1 = os.path.abspath(file)
>>> path1     # Wrong path to your module
'd:\\Users\\mason-liu\\Downloads\\Machine_Learning\\Fish_book\\dataset'
>>> path2 = os.path.dirname(path1)
>>> path2
'd:\\Users\\mason-liu\\Downloads\\Machine_Learning\\Fish_book'
>>> sys.path
['', 'C:\\Software\\Python\\python39.zip', 'C:\\Software\\Python\\DLLs', 'C:\\Software\\Python\\lib', 'C:\\Software\\Python', 'C:\\Software\\Python\\lib\\site-packages', 'C:\\Software\\Python\\lib\\site-packages\\win32', 'C:\\Software\\Python\\lib\\site-packages\\win32\\lib', 'C:\\Software\\Python\\lib\\site-packages\\Pythonwin', 'D:\\Python\\Project\\OK', 'd:\\', 'C:\\Software\\Python\\python38.zip']
>>> sys.path.append(path2)
>>> sys.path
['', 'C:\\Software\\Python\\python39.zip', 'C:\\Software\\Python\\DLLs', 'C:\\Software\\Python\\lib', 'C:\\Software\\Python', 'C:\\Software\\Python\\lib\\site-packages', 'C:\\Software\\Python\\lib\\site-packages\\win32', 'C:\\Software\\Python\\lib\\site-packages\\win32\\lib', 'C:\\Software\\Python\\lib\\site-packages\\Pythonwin', 'D:\\Python\\Project\\OK', 'd:\\', 'C:\\Software\\Python\\python38.zip', 'd:\\Users\\mason-liu\\Downloads\\Machine_Learning\\Fish_book']
10个月前 评论

file

Thanks for your reply. I dont understand how to modify yet. Thats's correct address.

file @Jason990420

10个月前 评论
Jason990420

Check if it is correct path to your import module when you execute your script.

os.path.abspath(r"/Users/mason-liu/Downloads/Machine_Learning/Fish_book/dataset")
10个月前 评论
DongMing (楼主) 10个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!