1

依存関係の問題なしに友人に簡単にエクスポートできる Python スクリプトを作成しようとしていますが、その方法がわかりません。具体的には、私のスクリプトは BeautifulSoup のコードに依存していますが、友人に BeautifulSoup のインストールを強制するのではなく、BeautifulSoup の src をプロジェクト ファイルの Libraries/ フォルダーにパッケージ化し、そこから関数を呼び出します。ただし、単純に「bs4 をインポートする」ことはできなくなりました。これについての正しい方法は何ですか?

ありがとう!

4

2 に答える 2

4

一般的なアプローチは、必要なライブラリのどのバージョンが必要かを指定して、要件ファイルをプロジェクトに同梱することです。このファイルは (慣例により) 多くの場合requirements.txt、次のような名前が付けられています。

MyApp
BeautifulSoup==3.2.1
SomeOtherLib==0.9.4
YetAnother>=0.2

(上記の架空のファイルには次のように書かれています: BeautifulSoup 3.2.1、SomeOtherLib 0.9.4、および 0.2 以上の任意のバージョンの YetAnother が必要です)。

次に、このプロジェクトのユーザーは、ライブラリを取得して(virtualenvを作成して)実行できます

$ pip install -r requirements.txt

これにより、すべてのライブラリが取得され、システム全体またはプロジェクト全体で利用できるようになります (virtualenv が使用されている場合)。これは、要件ファイルを持つ github からのランダムな python プロジェクトです。

このアプローチの良いところは、推移的な依存関係が自動的に解決されることです。また、virtualenv を使用すると、プロジェクトが明確に分離され、ライブラリ バージョンの競合が回避されます。

于 2013-01-05T03:14:23.493 に答える
1

その下にあるものをインポートする前に、(最初に絶対パスに変換して) を追加Libraries/sys.pathする必要があります。

于 2013-01-05T03:12:15.483 に答える