我剛剛寫了一個python腳本來修復一些數據庫問題,它使用psycopg2模塊。由於某種原因,需要運行它的人(在服務器上)聲稱他們不能在他們的服務器機器上安裝psycopg2 ...有沒有一種方法可以將該模塊打包到我的腳本中,使它們不會必須安裝psycopg2?類似於將lib文件夾添加到Java中的類路徑的東西?如何用我的python腳本打包一個模塊
Thx提前, 安德烈
我剛剛寫了一個python腳本來修復一些數據庫問題,它使用psycopg2模塊。由於某種原因,需要運行它的人(在服務器上)聲稱他們不能在他們的服務器機器上安裝psycopg2 ...有沒有一種方法可以將該模塊打包到我的腳本中,使它們不會必須安裝psycopg2?類似於將lib文件夾添加到Java中的類路徑的東西?如何用我的python腳本打包一個模塊
Thx提前, 安德烈
建立一個目錄,把你的腳本放進去。
cd進入這個目錄,然後運行:
$ easy_install -Z --prefix . psycopg2
應該導致在相同目錄下的Python模塊的副本。
將所有東西都拉起來,然後把所有東西都發送出去。
至於無法安裝psycopg2,我確信它涉及到誰可以擁有數據庫服務器上的root訪問權限的安全策略。如果你找不到有必要的權限的人,有兩種方法去處理這個特定的貓:
1)你可以使用py2exe建立一個exe文件,這樣你就知道你的腳本的所有依賴關係都在那裏並可用。此外,這將允許你逃避處理任何python不兼容。你沒有提到你的Python版本(2.5,2.6,2.7,3.1?),也沒有提到服務器上的版本。
2)或者您可以將psycopg2模塊放置到它自己的目錄(c:\ mypymods)中,並在導入之前將路徑添加到sys.path。
import sys
sys.path = sys.path.append("c:/mypymods")
import psycopg2
....
如果整個模塊是用Python編寫的,並且沒有額外的依賴關係,您應該可以將它放在同一個文件夾中。 – 2011-01-31 20:18:08