如何在沒有 sudo 的情況下安裝 python-dev?

如何在沒有 sudo 的情況下安裝 python-dev?

我正在嘗試在我的用戶目錄(在我沒有 sudo 權限的 ubuntu 伺服器上)上安裝 python 套件(scikits.learn),但我得到

error: Python.h: No such file or directory

可能是因為我沒有安裝python-dev。但是如何在沒有 sudo 的情況下安裝 python-dev 呢?或者 Python.h 還有其他簡單的方法嗎?

答案1

您可以從原始程式碼編譯您自己的 python,然後安裝您想要的任何模組。 http://docs.python.org/devguide/

答案2

我知道這有點死靈術(恢復舊帖子),但我遇到了同樣的問題並且找不到答案,所以我分享我發現的問題...

我的解決方案:

我正在 ubuntu 16.04 桌面上工作,沒有 sudo,只安裝了 python 2.7。我設法在沒有 sudo 的情況下設置了 virtualevn (如下https://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo),當嘗試安裝 jupyter 時,我遇到了丟失的「錯誤:Python.h:沒有這樣的檔案或目錄」。

我的解決方案一點也不乾淨,但至少限於virtualenv 和虛擬 python 資料夾是:

  1. 建立測試目錄(package_download)
  2. no-sudo@pc:~/package_download$ apt-get 下載 libpython2.7-dev
  3. no-sudo@pc:~/package_download$ apt-get 下載 python-dev
  4. no-sudo@pc:~/package_download$ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb 。
  5. no-sudo@pc:~/package_download$ dpkg -x python-dev_2.7.11-1_amd64.deb 。

這將下載該庫並將其解壓縮到您的 package_download 資料夾中。現在是骯髒的部分,因為 pip 不允許我定位這個位置,所以我將這些文件添加到它們所屬的位置,在 virtualenv 資料夾內...

  1. 將「~/package_download/usr/bin」與您的 bin 目錄合併虛擬Python安裝資料夾(您用來安裝 virtualenv 並建立環境的資料夾),但不要取代任何檔案。
  2. 將“~/package_download/usr/lib”與您的 lib 目錄合併虛擬Python資料夾。這裡沒有衝突。
  3. 將「~/package_download/usr/include/python2.7」的內容複製到您的include/python2.7/資料夾中,這裡沒有衝突。這實際上是最髒的部分,因為我們正在修改的安裝資料夾虛擬Python(這不需要 sudo,因為它是 no-sudo虛擬Python)。
  4. 將資料夾「~/package_download/usr/include/x86_64-linux-gnu」複製到 include/python2.7/ 資料夾。複製資料夾在這裡沒問題...

現在運行你的虛擬環境:

  1. no-sudo@pc:~/running_virtualenv$ 來源 bin/activate
  2. (running_virtualenv)no-sudo@pc:~/running_virtualenv$ pip install jupyter
  3. 享受...

如果您發現您的包括/python2.7/是一個符號鏈接,那麼您將 virtualenv 資料夾與虛擬 python 資料夾搞錯了。 (感謝@andrzej1_1發現這個問題)

相關內容