2016-11-30 74 views
0

我想用python setup.py install來安裝Spyder到/AppDir/usr(即,這是--prefix,我指定爲python setup.py install),我希望這個Spyder的安裝工作,即使我移動/AppDir目錄。這目前情況並非如此,當我cd到移動/AppDir/usr/bin(這是在/AppDir/usr/bin不再而是在~/GitHub/mine/packaging/AppImages/recipes/spyder/AppDir/usr/bin,因爲我把它)目錄,然後運行./spyder從內它,我得到的錯誤:如何獲得python setup.py在引用python安裝時使用相對路徑?

zsh: ./spyder: bad interpreter: /AppDir/usr/bin/python: no such file or directory

爲了安裝Spyder,我相信我需要安裝Spyder的文件/AppDir/usr來調用相對文件路徑而不是絕對文件路徑(所以不需要調用解釋器/AppDir/usr/bin/python它會調用./python)。有沒有辦法做到這一點?

編輯:我計劃從這個AppDir創建一個AppImage(交叉分發包格式),所以符號鏈接將無法正常工作!由於此AppImage旨在由其他人下載並由其他人使用本地解決方案(例如,通過修改我的本地系統(如我的~/.zshrc文件)來運行)不起作用!

+0

爲什麼不用pip安裝? pip安裝spyder? – MYGz

+0

給出此錯誤https://github.com/probonopd/AppImages/issues/149#issuecomment-263770455。 – BH2017

回答

0

您從shebang得到的結果在./spyder的錯誤。 Shebangs must use absolute paths,所以當您使用解釋器移動文件夾時,它不能自動更改。實際上,Filesystem Hierarchy Standard背後的想法是讓邏輯文件位置保持相同且可預測,而不管它們的物理位置如何(例如,對於Python而言,例如.pyc文件具有絕對路徑,因此一旦安裝完成後可能必須重新生成它們移動)。

最簡單的出路是手動搜索&在使用該特定Python安裝的所有腳本中替換shebangs。見例如linux - How/Is it possible to install python in a portable way? - Unix & Linux Stack ExchangeCreating a Portable Python (local install) for Linux其他選項。

相關問題