2016-06-16 4 views
1

私は最初の実際のPythonプロジェクトを開始しています。私は最初のPython skeletonを作るために "Pythonを学ぶのは難しい方法"に従っており、私もvirtualenvを使っています。virtualenvで作業するときに/ binディレクトリをコミットする必要がありますか?

今私はバージョン管理を行うためにgitを使用したいです。 SOのいくつかの以前の質問によれば、私はvirtualenvファイルをコミットするよう提案していません。代わりに、pip freeze > requirements.txtを使用し、.gitignoreを使用してvirtualenvディレクトリを無視できます。

しかし、両方のvirtualenvのとPythonプロジェクトのスケルトンは、私もそれをコミットする必要があり、/binディレクトリを必要としますか? (実際には、/binがPythonプロジェクトでどのような役割を果たしているのか分かりません)

Pythonプロジェクトを設定するプロセスに何か問題がある場合は、是非教えてください。

+1

'ピップ凍結> requirements'は十分にある仮想環境の状態を保存するのに十分です。 virtualenvのセットアップは、システム上の絶対パスを使用していますので、それを含むすべての 'virtualenv'コンテンツを無視するのがベストですので、あなたのプロジェクトは、gitのクローンから、あなたの'/bin'を使用して自分のシステム上でそれをクローン化された誰かのために動作しないでしょう '/bin'ディレクトリに移動します。 BTW、 '/ bin'ディレクトリは' virtualenv'によって作成され、あなたのシステムでプロジェクトを実行するために使用する 'python'実行可能ファイルを含みます。したがって、 'virtual_v'が再作成するときに'/bin'ディレクトリを無視してgitにコミットすることができます。 – davedwards

答えて

2

yourproject/binyourproject/envは、仮想環境のディレクトリであるyourproject/env/bin、区別される(およびそれらのどちらもルートディレクトリに/binです)。あなたはenvのすべてを無視すべきである、と確かに、あなたのプロジェクトは、仮想環境を使用していない、または異なって、それを管理している誰かのために働く必要があります。さもなければ、あなたは利益を失う。

は、あなたがあなたのプロジェクトを完了することを第二のために想像してみましょう、と私は新しい仕事のためにそれを使用したいです。私は、独自のvirtualenvで新しいプロジェクトを開始し、使用したい他のコンポーネントをインストールしてから、あなたのものをインストールします。私が始めたより古いバージョンのPythonを持っていて、2年前のdeactivateのバグが何とか復活しました。デバッグを想像してみてください。あなたのプロジェクトが私のいくつかのファイルを置き換えたことに気付かないでください。

(これらの事が行くように、binディレクトリは、仮想環境のかなり静的な部分であり、私のプライベートenvの他の部分をザッピングすることははるかに破壊的になり、あなたがlibを犯した場合は、他のコンポーネントをインストールするから私を妨げているだろう。あなたの前に。)

関連する問題