(Python) Используйте библиотеку локально вместо ее установки - PullRequest
54 голосов
/ 30 января 2012

Скрипт:
Я написал скрипт на python, который иногда отправляет твиты в твиттер
Он использует только одну библиотеку: tweepy
после установкибиблиотека это работает, отлично.

Проблема:
Я хотел бы разместить скрипт на сервере, на котором у меня нет прав для установки чего-либо
Было бы здорово, если бы я мог просто включить его локальноиз папки, в которой он у меня есть.
На данный момент все, что мне нужно включить в начало моего файла, это:

import tweepy

твипая папка (Есть ли __init__.py файл, который я считаю важным.

Вопрос:
Как я могу использовать эту библиотеку без ее установки?
В основном я хочу заменить: import tweepy с import local_folder/tweepy/*

это может быть просто здравый смысл питона, но я застрял!

Ответы [ 4 ]

62 голосов
/ 30 января 2012

РЕДАКТИРОВАТЬ: Этот ответ устарел. Вы должны использовать VirtualEnv . Если у вас есть аллергия на стороннее программное обеспечение по какой-то причине (в таком случае, почему вы устанавливаете библиотеки?), Есть что-то под названием venv , которое буквально встроено в python3, поэтому нет никаких оправданий использовать какую-то виртуализацию. (Однако большинство активных членов сообщества предпочитают VirtualEnv. См. https://stackoverflow.com/a/41573588/410889.)

VirtualEnv устанавливает локальный интерпретатор python, с локальной папкой пакетов и всем прочим. В дополнение к этому, полностью решая проблему административных привилегий, наиболее важной особенностью VirtualEnv является то, что она позволяет вам поддерживать свою среду отдельно. Если у вас есть один проект, который требует Foo версии 2.3, а другой - Foo версии 1.5, вы не можете использовать их в одной среде; вы должны хранить их среды отдельно с VirtualEnv.


Есть несколько возможностей:

Если вы уже знаете, как устанавливать модули Python, настройка по умолчанию distutils уже включает опцию установки для каждого пользователя. Просто запустите python setup.py install --user вместо python setup.py install. Это самый простой способ, поскольку для этого не требуется добавлять какой-либо исходный код.

Вы также можете запустить скрипт с каталогом tweepy в качестве текущего рабочего каталога.

Вы можете добавить переменную среды с именем PYTHONPATH в любую среду (например, оболочку), которую вы используете для запуска скрипта, и сделать так, чтобы она содержала путь к tweepy.

Если ничего не помогает, и вы действительно хотите отредактировать свой исходный код, вам нужно отредактировать sys.path. sys.path - это список мест, где Python будет искать код.

В своем коде напишите:

import sys
sys.path.append("/path/to/your/tweepy/directory")

import tweepy
8 голосов
/ 30 января 2012

вы должны установить виртуальную среду Python , чтобы вам не приходилось беспокоиться о наличии прав администратора, и вы можете установить все, что захотите.

6 голосов
/ 28 октября 2014

Также, если вы хотите использовать его часто, как в сценарии.Простой способ экспортировать «PYTHONPATH» в файл bashrc / zshrc и указать путь к каталогу, содержащему ваш код.

Например:

export PYTHONPATH=$PYTHONPATH:$HOME/path/to/module

Таким образом, вам не нужно делать sys.path при каждом перезапуске.

Счастливое кодирование

3 голосов
/ 13 июня 2018

Простое и чистое решение:

import sys
sys.path.insert(0, '/absolute/path/to/package')
import some.cool.package

some.cool.package.doCoolStuff()

Ответ выше с 'append' не работает с пакетами, которые также установлены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...