2016-07-15 10 views
1

私はPythonと開発一般に比較的新しいですし、システムパッケージとしてプロジェクト固有のパッケージをインストールしています。これは、virtualenv内の特定のプロジェクトのrequirements.txtファイルを作成しようとすると、今や私に問題を引き起こしています。piping free> requirements.txt virtualenv内のすべてのシステムインストールパッケージを含む

例えば、私は広いKivyシステムをインストールしていると私は要件に新しいENVを作成するたびに、私は(はいENVがアクティブである)以下になっていますファイル:

$ pip freeze > requirements.txt 
$ cat requirements.txt 
Kivy==1.9.1 
Pillow==2.6.1 
Pygments==2.0.1 
chardet==2.3.0 
colorama==0.3.2 
docutils==0.12 
html5lib==0.999 
kazam==1.4.5 
pygobject==3.14.0 
python-apt==0.9.3.12 
python-debian==0.1.27 
pyxdg==0.25 
requests==2.4.3 
roman==2.0.0 
six==1.8.0 
urllib3==1.9.1 
wheel==0.24.0 

私がしましたまたKivyをアンインストールしようとした、他のものが、次の出力を得る(重要なOSのパッケージを削除したくない、ここで慎重にしようとしている)の中で:

$ pip uninstall kivy 
Not uninstalling Kivy at /usr/lib/python3/dist-packages, owned by OS 

だから私の質問はこれです: はどうやって取得することができますpythonパッケージをデフォルトに戻し、必須のシステムパックのみを使用するkageがインストールされている(ほぼ新鮮なpythonのインストールのような)場合、システム全体のインストールされたパッケージを含むvirtualenvの中のrequirement.txtファイルをどうやって防ぐのですか?(私はevnの方がずっと良くなりますので、それは何の違いを行う場合

、Debianの8実行もルート)としてこれを実行している幅広いパッケージ)

私もなぜpip unistall kivy doesntの仕事を見つけることに興味があると思い(はい、私が試した

これが理にかなっていると思います。

EDIT:だから、env/bin/pip installではなくpip installを使用していたenvを作成した後、私はこのすべてのことを間違っていると思います。私が間違っていない限り、これはパッケージがグローバルにインストールされている理由です。要件ファイルも同じです。

+0

あなたはvirtualenvの内部のアンインストールを実行しているを使用して、各virtualenvのにちょうどあなたの地元のパッケージを凍結することができますか?もしそうなら、それをvirtualenvの外で実行します。 – Craicerjack

+0

はvenvを無効にして外部から実行していません – tuxedozombie

+0

あなたは 'sudo'を試しました – Craicerjack

答えて

7

あなたは-l(または--local)パラメータ

pip freeze --local > requirements.txt 
+0

これは、ありがとうございます。私は、アクティブなenvにパッケージをインストールした後、要求されたパッケージを要件ファイルに表示するだけであることに気付きました。しかし、一旦envの外でpip freezeコマンドを無効にして実行すると、今までインストールしたばかりのパッケージが他のすべてのシステムパッケージと共に表示されますが、これは正常ですか?私はenvの全体のポイントは、システム全体のパッケージをインストールしないことだと思った?希望があることを願う – tuxedozombie

関連する問題