Как упаковать модуль с моим скриптом Python - PullRequest
2 голосов
/ 31 января 2011

Я только что написал скрипт на python, чтобы исправить некоторые проблемы с базой данных, и он использует модуль psycopg2. По какой-то причине человек, которому нужно запустить его (на сервере), утверждает, что он не может установить psycopg2 на свою серверную машину ... есть ли способ, которым я могу упаковать этот модуль в свой сценарий так, чтобы он не должен быть установлен psycopg2? Что-то похожее на добавление папки lib в classpath в Java?

Спасибо заранее, Andre

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Создайте каталог, поместите в него свой скрипт.

cd в этот каталог, затем запустите:

$ easy_install -Z --prefix . psycopg2

Это должно привести к копии модуля python в том же каталоге.

Застегни все это и отправь целиком.

0 голосов
/ 01 февраля 2011

Что касается невозможности установить psycopg2, я уверен, что это касается политик безопасности, касающихся того, кто может иметь root-доступ на серверах баз данных. Если вы не можете найти кого-то с необходимыми разрешениями, есть два способа скина этого кота:

1) Вы можете создать исполняемый файл, используя py2exe, чтобы вы знали, что все зависимости для ваших скриптов есть и доступны. Также это позволит вам избежать любых несовместимостей с питоном. Вы не упомянули ни версию своего 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
....
...