2017-09-23 78 views
0

當我有在以下目錄一個main.py文件:FileNotFoundError指定正確的路徑

/Users/username/Projects/maps/Debugging/genericbot/main.py 

此腳本main.py從db.py文件導入功能(通過下面描述的符號鏈接),並且執行它:

/Users/username/Projects/maps/Debugging/genericbot/other_project/db.py 

我創建的兩個像這樣之間的符號鏈接:

ln -s /Users/username/Projects/other_project 
/Users/username/Projects/maps/Debugging/genericbot/other_project 

的進口進入˚F INE,但是當我想打開一個文件,通過運行下面的代碼/other_project/db.py文件夾,像這樣:,

import pickle, os 

database_filename = "/Users/username/Projects/other_project/db.p" 

def load_db(): 
    db = pickle.load(open(database_filename, "rb")) 
    return db 

它返回以下錯誤,儘管路徑是絕對無誤:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/username/Projects/other_project/db.p' 

我已經試過指定,像這樣的絕對路徑(以鏈接):

/Users/username/Projects/maps/Debugging/genericbot/other_project/db.p 

但是,這似乎並沒有任何工作。任何方式來解決這個問題?

+0

你在你的'db.py'文件名中'數據庫文件名'中註冊了' – Vinny

+0

不,我想我沒有正確澄清。 db.py文件(被加載,並且函數從中導入)不是問題,db.p文件(位於同一位置的pickle文件)是問題。 – freefall

+0

你沒有在你的問題中提到db.p文件,你正在符號化整個目錄嗎?還有你在終端中執行什麼結果:'stat/Users/username/Projects/other_project/db.p'你那裏有那個文件? – rombarcz

回答

0

這可能是文件系統級問題符號鏈接的時候,等,確保您在正確的地方文件,從終端:

ls -alh /Users/username/Projects/other_project/ 

確保您db.p是存在的,你可能想找到發現文件的確切位置:

find /Users/username/Projects/ -name 'db.p' 
+0

不,我想我沒有正確澄清。 db.py文件(被加載,並從中導入函數)不是問題,db.p文件(在同一位置的一個pickle文件)是問題 – freefall

+0

是的,好像我的文件名錯誤。出於某種原因,我將它保存爲「.../db.p」,並帶有尾部空格。感謝您指點我正確的方向。 – freefall

+0

如果解決了您的問題,請接受答案 – rombarcz