2014-06-17 105 views
1

我必須將python應用程序部署到生產服務器(Ubuntu),我無法控制,也沒有權限apt-get, pip, virtualenv,等。目前,它的服務器正在運行python 2.6+。我需要安裝pycrypto作爲應用程序的依賴項,但由於我的權限有限,我不確定如何執行此操作。我唯一認爲我有權限做的是wget資源,並沿着這些線解壓縮它或東西。如何安裝不帶pip或virtualenv的python包

首先,有沒有可能使用它,而沒有得到它安裝在上述方法?如果沒有,我可以下載,則包__init__.py文件拖放在pycrypto DIR這樣蟒蛇知道如何找到它,像這樣:

/my_app 
    /pycrypto 
    /__init__.py 
    /pycrypto.py 
+0

你可以嘗試把它放在你的PYTHONPATH。 –

回答

3

根據PEP370,從python 2.6開始,您可以擁有每個用戶的網站目錄(請參閱What's new in Python 2.6?)。

因此,您可以使用--user選項easy_install來安裝每個用戶的目錄,而不是系統範圍的目錄。我相信pip也有類似的選擇。 這不需要任何特權,因爲它只使用當前用戶目錄。

如果你沒有任何安裝程序安裝您可以手動解壓包入:

~/.local/lib/python2.6/site-packages 

或者,如果你是在Windows,分爲:

%APPDATA%/Python/Python26/site-packages 

在安裝前需要安裝大樓,因爲它包含一些C代碼。來源應該包含一個setup.py文件。你必須建立運行

python setup.py build 

庫之後,您可以通過給在用戶目錄中安裝它:

python setup.py install --user 

注意,構建階段可能需要對已經安裝了一些C庫。


如果你不想這樣做,只有選擇是與您的應用程序一起船庫。


順便說一句:我相信easy_install並沒有真正檢查是否是根執行系統廣泛安裝之前。它只是檢查它是否可以寫入系統範圍的站點目錄。所以,如果您確實有寫這些權限,那麼首先不需要使用sudo。然而,這將是非常奇怪的...

+0

看起來像我沒有easy_install哪一個很糟糕。所以說清楚一點,當你說我的應用程序出庫時,你的意思是我以某種方式列出了問題或其他方式? – Brad

+0

@Brad我剛剛更新了我的答案。您只需將該軟件包複製到每個用戶的網站目錄中即可。查看我的答案和鏈接文檔以獲取詳細信息。一些複雜的安裝需要修改一些'.pth',但這通常很容易。如果基本複製/粘貼不起作用,請留言,我將檢查「pycrypto」是否需要一點配置。 – Bakuriu

+0

當然,easy_install並沒有檢查權限,pip也沒有,但ubuntu肯定會檢查。 –

0

使用easy_install。它應該已經安裝在Ubuntu for Python 2.6+上。如果不是看看這些安裝instructions

+0

如何在沒有sudo的情況下安裝? –

+0

@PadraicCunningham是不是已經在系統上的'easy_install'? – hanleyhansen

+0

你需要sudo才能在任何安裝了python的/ usr子目錄中安裝軟件包。 –

相關問題