web-dev-qa-db-ja.com

(Python)ライブラリをインストールする代わりにローカルで使用する

スクリプト:
私はpythonでTwitterに時々ツイートを送信するスクリプトを作成しました
次のライブラリを1つだけ使用します。 tweepy
ライブラリをインストールした後、動作します。

問題:
何もインストールする権限のないサーバーでスクリプトをホストしたい
それを手に入れたフォルダからローカルに含めることができれば素晴らしいと思います。
現在のところ、ファイルの先頭に含める必要があるのは次のとおりです。

import tweepy

tweepy folder (DOESには__init__.py重要だと思うファイル。

質問:
このライブラリをインストールせずに使用するにはどうすればよいですか?
基本的に交換したい:import tweepy with import local_folder/tweepy/*

これはpython常識ですが、私は立ち往生しています!

55
Trevor Hickey

EDIT:この答えは時代遅れです。 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.pathsys.pathは、Pythonがコードを探す場所のリストです。

コードに次のように記述します。

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

import tweepy
62
HardlyKnowEm

virtual python environment をインストールする必要があります。これにより、管理者権限を心配する必要がなくなり、必要なものをインストールできます。

8
Jonathan Ong

また、スクリプトのように頻繁に使用する場合。 bashrc/zshrcファイルの「PYTHONPATH」をエクスポートし、コードを含むディレクトリへのパスを指定する簡単な方法。

例えば:

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

これにより、再起動するたびにsys.pathを実行する必要がなくなります。

ハッピーコーディング

6
igaurav

シンプルでクリーンなソリューション:

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

some.cool.package.doCoolStuff()

上記の「追加」という回答は、インストールされているパッケージでも機能しません

3
user2846569