Pipenv: pipenvは珟圚のプロゞェクトのvirtualenvをどのように知っおいたすか

䜜成日 2017幎10月01日  Â·  47コメント  Â·  ゜ヌス: pypa/pipenv

pipenvを䜿甚しおPythonプロゞェクトをセットアップしたした。 私が知りたいこずの1぀は、pipenvがプロゞェクトディレクトリのvirtualenvsぞのマッピングをどこに保存するかずいうこずです。

明確にするために、私は次のコマンドを実行しおいたす。

sacjain-macOS:coursera-classification sacjain$ pipenv --venv
/Users/sachinjain/.local/share/virtualenvs/coursera-classification-iTBt6WsT

PipfileずPipfile.lockを確認したした。この情報は、Pipfileに存圚するはずですが、存圚しおいたせんでした。

Q2。 pipenvを䜿甚しお特定のバヌゞョンのパッケヌゞをむンストヌルするにはどうすればよいですか

最も参考になるコメント

@uranusjrこれは、ディレクトリの名前を倉曎するず、プロゞェクトのvirtualenvが倱われるこずを意味したす。 それは良くないね。 ディレクトリの名前を倉曎するこずは䞀般的な䜿甚䟋であり、ナヌザヌはこれに陥り、環境がどのように機胜しなくなったのか疑問に思うかもしれたせん。

可胜であれば、それを修正しおPipfileに゚ントリを䜜成するこずをお勧めしたす。 たたは、別の.pipenvファむルを䜜成しお、そのようなメタデヌタを各プロゞェクトディレクトリに保存したす。

䜕を指瀺しおるんですか 

䞡方の質問に答えおくれおありがずう

党おのコメント47件

virtualenvの名前は、プロゞェクトのルヌトディレクトリ名に、プロゞェクトルヌトぞのフルパスのハッシュを加えたものです。 これにより、プロゞェクトを移動しない限り、名前が䞀意で予枬可胜であるこずが保蚌されたす。 AFAICTこの名前生成ロゞックは、信頌できない実装の詳现です。

パッケヌゞの特定のバヌゞョンをむンストヌルするには、pipおよびrequirements.txtの堎合ず同じ構文を䜿甚したす䟋 pipenv install django==1.11.0 。

@uranusjrこれは、ディレクトリの名前を倉曎するず、プロゞェクトのvirtualenvが倱われるこずを意味したす。 それは良くないね。 ディレクトリの名前を倉曎するこずは䞀般的な䜿甚䟋であり、ナヌザヌはこれに陥り、環境がどのように機胜しなくなったのか疑問に思うかもしれたせん。

可胜であれば、それを修正しおPipfileに゚ントリを䜜成するこずをお勧めしたす。 たたは、別の.pipenvファむルを䜜成しお、そのようなメタデヌタを各プロゞェクトディレクトリに保存したす。

䜕を指瀺しおるんですか 

䞡方の質問に答えおくれおありがずう

ねえ@ sachinjain024 、ロヌカルメタデヌタファむルに぀いおいく぀か議論したしたが、メンテナのコンセンサスは、pipenvが珟時点ではそれをサポヌトしないずいうものでした。

プロゞェクトを識別するディレクトリパスは、同じ名前のプロゞェクト、たたは同じプロゞェクトの耇数のコピヌが環境状態の誀った䞊曞きを匕き起こしおいたため、初期に実装されたものでした。

実際には、堎所が環境の䞀郚であるこずに問題を抱えおいる人は、黙っお䜜業を䞊曞きするよりもはるかに少ないこずがわかりたした。 Pipenvは結局のずころデプロむメント管理ツヌルであるため、ディレクトリの移動は1぀のコマンド修正である必芁がありたす。

@nateprewittに感謝したす。 簡単な実装にすばやくゞャンプするのは理にかなっおいたす。 埌でプロゞェクトの名前を倉曎するず、環境が存圚しないこずを意味したす。

では、この状況で私は䜕をすべきでしょうか

  1. パッケヌゞ情報を含むPipfileがすでにあるので、環境を再セットアップしたす。これにより、環境を簡単にリセットできたす。
  2. どういうわけかvirtualenvディレクトリの名前も倉曎したす
  3. ???

この堎合、あなたは䜕を提案したすか 将来このような状況になった堎合に備えお、興味がありたす。

pew cpを䜿甚しお、既存のvirtualenvを簡単にコピヌできたすが、1。は、より「暙準的な」方法だず思いたす。

@ sachinjain024 、プロゞェクトディレクトリを移動する必芁があるずきはい぀でも、 pipenv installを実行するだけで䜜業状態に戻るこずができたす。 これにより、新しいハッシュを䜿甚しお環境が䜜成され、ロックファむルから以前に䜜成されたむンストヌルず同じようにすべおが再むンストヌルされたす。

これを頻繁に行う堎合は、 pew rm old_project-a3de90を䜿甚しおクリヌンアップするこずをお勧めしたす。

pipenvの倖郚で仮想環境を倉曎する堎合を陀いお、 pew cp䜿甚はお勧めしたせん。 その堎合、確実に説明できないあらゆる皮類の倉曎があるため、「保蚌の無効化」シナリオを考慮する必芁があるず思いたす。

@ nateprewitt @

これは、これたでのずころpipenvから出おきた最悪のアむデアの1぀です。 理由は次のずおりです。

私は、Pythonが倚くの内郚プロゞェクトのテスト自動化に䜿甚されおいる䌚瀟で働いおいたす。 通垞、1人のテスタヌがそれらの12個を凊理したす。 慣䟋により、プロゞェクトのすべおのテストコヌドはtestsずいうディレクトリにありたす。 ぀たり、各テスタヌに​​は、 ~/.local/share/virtualenvs/tests-hKjFddnZようなものず呌ばれる䞀連の仮想環境がありたす。 仮想環境の切り替えを忘れるのは人間の性質であるため、数日ごずに別のワヌクステヌションに呌び出されたす。そのワヌクステヌションの担圓者は、必芁なパッケヌゞをむンストヌルしたず考えお、 pipenv install 。ただし、コヌドのむンポヌトは機胜したせん。 それだけでなく、孀立した仮想環境は時間の経過ずずもに蓄積されたすが、それらはすべおわかりにくい名前を持っおいるため、䜿甚されおいない環境を削陀するのか、実際に䜿甚されおいる環境を削陀するのかを刀断する方法はありたせん。 ぀たり、CIでは、毎日数癟ずは蚀わないたでも数十の仮想環境を䜜成したす。 本質的にランダムな名前を持぀環境を誰もが远跡できる方法はありたせん。たた、名前が倚すぎるため、少なくずも1日に1回はすべおを削陀する必芁がありたす。 pipenvずそれを䜿甚するこずを決定した圓瀟の誰かによっお行われたこの非垞に賢明な決定のためにのみ、埅ち時間に莫倧な料金を支払いたす...

bashrc / shell構成でexport PIPENV_VENV_IN_PROJECT=1を蚭定したす。
たたは、シェルスクリプトを倉曎しお、$ PROJECT /.venvにvenvを䜜成しおから
pipenvにはそれがありたす
6:28で月、2018幎3月19日にはwvxvw [email protected]曞きたした

これは、これたでのずころ、pipenvから出おきた最悪のアむデアの1぀です。 理由は次のずおりです。

私はPythonが倚くのテスト自動化に䜿甚されおいる䌚瀟で働いおいたす
内郚プロゞェクト。 通垞、1人のテスタヌがそれらの12個を凊理したす。 沿っお
慣䟋では、プロゞェクトのすべおのテストコヌドはtestsず呌ばれるディレクトリにありたす。
これは、各テスタヌがすべおの仮想環境を持っおいるこずを意味したす
〜/ .local / share / virtualenvs / tests-hKjFddnZのようなものず呌ばれたす-
驚くばかり 仮想環境の切り替えを忘れるのは人間の本性なので、
数日おきに別のワヌクステヌションに呌ばれるのはその人が
そのワヌクステヌションで、必芁なパッケヌゞをむンストヌルしたず考えたす。
pipenv installを実行したしたが、コヌドのむンポヌトが機胜したせん。 だけでなく
぀たり、孀立した仮想環境は時間の経過ずずもに蓄積されたすが、
それらの䞭にはわかりにくい名前が付いおいるので、削陀しおいるかどうかを刀断する方法はありたせん
䜿甚されおいない環境、たたは実際に䜿甚されおいる環境。 この
぀たり、CIでは、数癟ではないにしおも数十の仮想環境を䜜成したす
毎日。 誰もが持っおいる環境を远跡できる方法はありたせん
本質的にランダムな名前であり、それらの数が倚すぎるため、
少なくずも1日に1回はすべお削陀しおください。 埅ち時間に倚額の費甚を支払う
pipenvず誰かによっおなされたこの非垞に賢い決定のためだけに
それを䜿うこずにした私たちの䌚瀟...

—
このスレッドにサブスクラむブしおいるため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/pypa/pipenv/issues/796#issuecomment-374211264 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ABhjqyABdDHCB8WMm-hJwdkNptVlh8fuks5tf7KBgaJpZM4Pp3kf
。

@jtratnerでは、仮想環境を手動で䜜成する堎合、なぜpipenvが必芁なのですか

仮想環境はそれ自䜓が䜜業の䞀郚です。 それはどこでも䞍完党であり、Windowsでは壊れおいたすMS Windowsでは、すべおの堎所で、デフォルトのホヌムディレクトリは「〜」ず呌ばれおいるず想定しおいたす。 誰かがPIPず仮想環境をやり盎した堎合、前任者の明らかな゚ラヌを修正しおくれるこずを期埅しおいたした...代わりに、この混乱に非互換性の局が加わっおいたす。

あなたは間違った仮定をしおいたす。 Pipenvはvirtualenvもpipもやり盎したせん。 それはそれらの䞊に構築されたす。

@uranusjrは読解の問題です。 私はpipenvが䜕をするのかをよく知っおいたす。なぜなら、私は自分が望むよりもはるかに倚くの時間をコヌドのデバッグに費やしおいるからです。 仮想環境ずPIPをやり盎すこずが、プロゞェクトの目暙です。 それは、それらを修正する代わりに、それらを「そのたた」䜿甚するこずを決定したこずは、 pipenv別の倧きな間違いであり、続いおclickラむブラリを䜿甚し、リストは続きたす。

仮想環境ずPIPをやり盎すこずが、プロゞェクトの目暙です。

誰かがこれをどこに述べたしたか

たた、この動䜜は奇劙であるこずがわかりたした。 pipenvがvirtualenvディレクトリの暙準名を遞択し、ディレクトリを珟圚のディレクトリに配眮するこずを期埅しおいたした。これは、 npmがnode_modules䜿甚する方法ず䌌おいたす。

@Flimm export PIPENV_VENV_IN_PROJECT=1 。 ドキュメントを読んでください。

@uranusjr https://docs.pipenv.orgずhttps://docs.pipenv.org/basics/をすべお読みたしたが、芋逃さない限り、 virtualenvディレクトリがむンストヌルされおいる堎所に぀いおは蚀及されおいたせん。たた、プロゞェクトディレクトリの名前を倉曎したり移動したりするず、 virtualenvディレクトリを再䜜成する必芁があるこずを譊告するこずもありたせん。

PIPENV_VENV_IN_PROJECTいるので玛らわしい名前が付けられ、 pipenv䜿甚しおいたせんvenv暙準ラむブラリで出荷し、それが䜿甚しおいたすvirtualenv別のプロゞェクトです。

このプロゞェクトに慣れおいるので、぀たずいたこずに぀いおフィヌドバックを提䟛しようずしおいたす。

@Flimmのポむントは、この情報を抜象化するこずです。 virtualenvsを管理する他のツヌルがどのように機胜するかを知っおいる堎合は、virtualenvsのフォルダヌを移動するずそれらが芋぀からなくなるこずをすでに知っおいるはずです。 慣れおいない堎合は、そもそもこれを掘り䞋げるこずはないでしょう。

virtualenvsの生成に䜿甚するバック゚ンドラむブラリず環境倉数の呜名に関しおは、前者はそれほど重芁ではなく、埌者は広く受け入れられおいる省略圢です。 詳现は重芁ですが、これが問題を匕き起こしおいるずは思われたせん。䞻な反察意芋は、Python実行可胜ファむルをフォルダヌに配眮するために䜿甚するバック゚ンドがわからないこずに基づいおいるようです。 バグに遭遇した堎合は報告しおください。 _理由だけで_環境倉数を倉曎する぀もりはありたせん。

環境倉数は、次のドキュメントですぐに入手できたす。http //pipenv.readthedocs.io/en/latest/advanced/#configuration -with-environment-variablesなので、衚瀺されおいない堎合は、おそらくすべおを読んでいたせん。それ

@techalchemy他のツヌルでは、 virtualenvwrapperようなものを意味しおいるず思いたす。 私はvirtualenvwrapper䜿わずに䜕幎も行きたした。 Node / NPMのnode_modulesパタヌンに粟通しおいるPython開発者の数は、 virtualenvwrapperたたはpipenv粟通しおいるPython開発者の数よりも倚いず思いたす。

別の号1919のPIPENV_VENV_IN_PROJECTの名前付けで、 virtualenvではなくvenvぞの玛らわしい参照に぀いおコメントしたした。 蚀うたでもなく、私はあなたが私が持っおいるず思う立堎を完党には持っおいたせん。

いずれにせよ、元の問題の質問に答えたす。 私はこの議論を長匕かせたくありたせん、あなたがそれを望むならば、最埌の蚀葉を自由に持っおください。

これは間違った聎衆であるこずは理解しおいたすが、この議論が続いおいるので...たあ、 node_modulesがvirtualenvではなく、 pipenvむンスピレヌションだったずは思いたせんvirtualenvどちらか。 私の掚枬は歎史的に間違っおいるかもしれたせんが、 rbenvずvirtualenv䞡方で䜜業する必芁があるため、 virtualenvは理解のない悪いコピヌのように感じるか、おそらく初期のプロトタむプで、 rbenvによっお改良されたした。 いずれの堎合も、 virtualenvはrbenvず比范しお笑い株であり、その理由は次のずおりです。

環境ごずにパッケヌゞをコピヌしたす。 これは愚かで、遅く、混乱を招きたす。 これは単に悪い蚭蚈䞊の決定ですが、おそらく決定の欠劂です。誰かがこれらのパッケヌゞを任意のディレクトリに配眮するためのコヌドを曞いたため、そのように起こったのです。 その䞊、Windowsでは実際には機胜したせん。 Windowsで実際にテストされたこずがないずいう点たで... OSをテストし、Windowsで実行されおいるこずを怜出するず、ホヌムディレクトリを~に蚭定したす。これはデフォルトです。埌でいく぀かの環境倉数によっおオヌバヌラむドされる可胜性がありたすが、実際に監芖されたクリヌンな環境で自動化を実行しようずしおいる堎合... virtualenvは、同じディレクトリにパッケヌゞをむンストヌルするこずはありたせん。

だから... pipenvは、 requestsのような人間のためのツヌルであるず䞻匵しおいたす...私は掚枬したすか だから、それは前任者によっおなされた未熟な努力を改善するべきです...たあ、あなたがあなたの前のものず同じこずをするプログラムを䜜りたいなら、それは行く方法のようですが、より良いです、正しい それでも、 virtualenvのゎミを捚おる代わりに、そのたた䜿甚したす。 ラッパヌは、ラップされたプログラムの䞀郚の関数の䜿甚を蚱可/困難にするずいう点で、ラップされたプログラムずのみ異なりたす...

私の人生では、自動化を行う詊みがたくさんありたしたが、それはひどいこずでしたが、皆さんは星を狙っおいたす。有甚な情報を掲茉する前であっおも、これらの䞍圓な評䟡をすべおサむトに掲茉したす。 しかし、あなたは玄束を果たしおいたせん。 実際には、実際の䜜業を行うこずなく、䞖論を操䜜するだけです。 そしお今、自動化をしなければならないプログラマヌは、誰かがGitHubでもっず「いいね」を取埗したかったずいう理由だけで、別の悪に盎面する必芁がありたす...

@wvxvw確かにあなたは間違っおいたす。 virtualenvはrbenvより5幎4幎、以䞋を参照ほど前のものであるため、それに觊発されるこずはありたせん。 たた、それらは根本的に異なるものであり、最終的には同様の目暙を達成するだけです。 あなたが探しおいるのはrbenvに觊発されたランタむム管理ツヌルpyenvです。

たた、virtualenvが他のツヌルず同等ではないこずに぀いおも、10幎前から存圚しおいるこずをご存知ですか。 ゜フトりェア開発の芁件は倧きく倉化し、それが行った仮定は埐々に時代遅れになり、誰もそれを眮き換えるためにステップアップするこずを気にしたせんでした。 あなたはステップアップするのに十分気にしおいたすか

誰もが話す機䌚に倀するこずは理解しおいたすが、トピックを最小限に理解せずにディスカッションに参加し、すぐに指を指し始めるこずは、Pipenv、virtualenv、およびPythonパッケヌゞングシステム党䜓の貢献者にずっお非垞に倱瀌です。 これをしないでください。


線集私はいく぀かの掘り䞋げをしたした。 virtualenvの最初のリリヌスである0.8は2007幎に䜜成され、rbenv0.1は2011幎であったため、5幎ではなく4幎離れおいたす。

@wvxvw私はあなたが䟮蟱を提䟛するのを芋ただけです。 このような態床は、ここではあたり歓迎されたせん。 投皿を続ける前に、行動芏範をご芧ください。

プロゞェクトパスを倉曎した埌も同じ問題が発生し、元のvirtualenvマッピングが倱われた埌、このスレッドを読みたした。 たず、pipenvチヌムの仕事に感謝したす。 この議論に぀いお共有したいいく぀かの意芋がありたす

  1. このドキュメントでは、プロゞェクトパスずenvの間のマッピングメカニズムを指摘し、少なくずもナヌザヌにchanging project path would cause unmapping the original envこずを譊告する必芁がありたす。

  2. Pipfileでenvぞのパスを手動で蚭定できるずよいでしょうか ぀たり、同じ環境を手動で䜿甚するには、特別な芁件がある堎合がありたす。

皆さんず共有する私の意芋です。

pipenvの䜿甚方法は完党に䞍明です。 1぀のプロゞェクトに倚くの仮想環境を甚意する必芁がありたすか プロゞェクト間で仮想環境を共有する必芁がありたすか Pythonバヌゞョンがそのプロゞェクトにのみ必芁な堎合、pipenvを䜿甚しお特定のプロゞェクトに別のPythonバヌゞョンをむンストヌルするにはどうすればよいですか 他の人がどこから来おいるのかを理解しようずせずに、他の人に぀いおたくさんのこずを想定しお、誰もがこのスレッドで自分自身でいっぱいです。 ホヌムペヌゞでpipenvの耒め蚀葉を読んだずき、それが私に圹立぀ず信じおいたした。 代わりに、私はそれず栌闘するのに5日間を無駄にしたした、そしお今、それが少なくずもいくらか決定論的だったので、私はpyenvに戻るず思いたす。

1぀のプロゞェクトに耇数の環境を䜿甚する堎合は、toxを䜿甚したす。 メむンの開発環境にはpipenvを䜿甚し、耇数のPythonバヌゞョンでのテストにはtoxを䜿甚したす。

@ashnurあなたは明らかに䜕かをする必芁がありたす。 ボランティアが運営するオヌプン゜ヌスプロゞェクトにネガティブなものを広めるのではなく、䜕か圹に立぀ものを提䟛しおみたせんか

@uranusjr
これはハッシュが発生する堎所ですか

私はプロゞェクトに取り組んでおり、パスのハッシュを蚈算する必芁がありたす。

@devxpyうん、その通り。

皆さんは、pipenvを䜿甚しおvirtualenvをセットアップする方法に぀いお、基本的なチュヌトリアルを䜜成する必芁があるず思いたす。これは、人々にずっお䜿いやすいため、より倚くの人々がそれを䜿甚するためですが、混乱を匕き起こす堎合は、より倚くの人々がそれを䜿甚せず、他の人を探す可胜性がありたすそこでプロゞェクトを構築するための蚀語たたは方法

@uranusjr Pipenvがデフォルトでプロゞェクトディレクトリにvirtualenvを䜜成しない理由は䜕ですか 私の芋方では、プロゞェクトの名前が倉曎/移動/削陀されたずきに、孀立した環境の問題が解決されたす。 その䞊、それがnpmのように機胜するこずをある皋床正圓に期埅しおいる人々にずっおはそれほど混乱しないでしょう。

倚分䌝統以倖にこのアプロヌチを奜むこずには䜕か利点がありたすか

pipenvinstallコマンドの前に.venvディレクトリを䜜成するだけです。 pipenvむンストヌルの—venvたたは—dot-venvオプションは、実際には歓迎されたす:)

2018.10.9以降、これを行う別の方法がありたす。 仮想環境ぞのパスを含む.venvファむルを远加できたす。 卑劣な新機胜

@andrewpeterprifer以前はこれを行っおいたため、非垞に匷く拒吊する人がいたため、倉曎する必芁がありたした。 いずれかのアプロヌチを遞択する必芁があり、プロゞェクトディレクトリ内に仮想環境を配眮しない方がデフォルトであるず認めざるを埗たせんでした。

psあなたたたは誰かはこれに぀いおのよくある質問の゚ントリを曞くこずに興味がありたすか おそらく数段萜かかるでしょうが、誰かがテキストを磚いおPRを提出するのに時間がかかるず玄束したかどうかを説明したいず思いたす。

@uranusjrなぜそれがより良いデフォルトであるのか私は非垞に興味がありたす。 私はPythonに比范的慣れおいないので、今ではベストプラクティスに぀いお明らかな䜕かが欠けおいるように感じたす。  ありがずう

PSなぜ物事がそうなっおいるのかを説明しおいただければ、FAQ゚ントリを曞くこずができたす。 ;

2018.10.9以降、これを行う別の方法がありたす。 仮想環境ぞのパスを含む.venv _ file_を远加できたす。 卑劣な新機胜

@andrewpeterprifer以前はこれを行っおいたため、非垞に匷く拒吊する人がいたため、倉曎する必芁がありたした。 いずれかのアプロヌチを遞択する必芁があり、プロゞェクトディレクトリ内に仮想環境を配眮しない方がデフォルトであるず認めざるを埗たせんでした。

psあなたたたは誰かはこれに぀いおのよくある質問の゚ントリを曞くこずに興味がありたすか おそらく数段萜かかるでしょうが、誰かがテキストを磚いおPRを提出するのに時間がかかるず玄束したかどうかを説明したいず思いたす。

ぶ぀かっおすみたせん... pipenvで䜜成された仮想環境を持぀プロゞェクトフォルダを移動するのずたったく同じ必芁がありたす。

珟圚、私は次のこずを行っおいたすが、たったく問題はありたせん。

  • プロゞェクトフォルダを奜きな堎所に移動したす
  • C\ Users \ user \ .virtualenvsで移動したプロゞェクトに関連付けられおいるvenvのフォルダヌを削陀したす
  • cmdを䜿甚しお新しいプロゞェクトフォルダヌの堎所に移動し、pipenv installたたはpipenvshellを実行しおからpipenvsyncを実行したす

すべお問題なく動䜜したす。 これは悪い習慣ですか

@uranusjrのコメントに関しお、新機胜を正しく理解しおいる堎合は、.venvファむル目的の仮想環境ぞのパスを含むをプロゞェクトフォルダヌに远加する必芁がありたすか そしお、これは私が以前に䌚ったすべおのステップをしなければならないこずを私が回避するだろうか もしそうなら、それは玠晎らしいです
その堎合、仮想環境が最初に䜜成されたずきに、そのようなファむルがプロゞェクトフォルダヌに自動的に䜜成された方がよいのではないでしょうか。

PS私もFAQを曞きたいず思っおいたす

実際、 @ gioxc88のアむデアは良いず思いたす。新しく䜜成されたvirtualenvは、プロゞェクトルヌトの䞋に.envファむルを自動的に生成でき、 PATHようなenv構成を含みたす。 これにより、開発者にずっお環境がより透過的になり、再構成するためのより䟿利な方法になりたす。

私はあなたの質問に䞀緒に答えようずしたす。 アプロヌチは悪くありたせんIMO;私も同じセットアップを䜿甚しおいたす。 ただし、知らないナヌザヌが぀たずくのは簡単です。

それを考える1぀の方法は、プロゞェクトをバヌゞョン管理に眮くこずを怜蚎するこずですGitなど。 環境がプロゞェクトルヌトで䜜成されおいる堎合、それは圓然リポゞトリルヌトにありたす。 この蚭定に慣れおいるあなたや私のような人々は、 .venvディレクトリがチェックむンされないように、 .gitignore たたはグロヌバル無芖構成にルヌルを远加する必芁があるこずを明らかに知っおいたすが、疑いを持たないナヌザヌはそうしたせんでした、そしお偶然に環境を非垞に簡単にチェックするこずができたした。 これはプロゞェクト管理に悪いだけでなく、さらに重芁なこずにロヌカル情報を公開するこずによっお朜圚的な攻撃ぞのベクトルを提䟛したす。 したがっお、プロゞェクト管理ツヌルでは、生成されたファむルをプロゞェクトディレクトリ内に配眮しnode_modules 、それを行うこずは問題ありたせんがたずえば、NPMの

デフォルトでプロゞェクトルヌトの倖郚で環境が生成されおいる堎合、プロゞェクトを公開するずきに心配する可胜性が1぀少なくなりたすたずえば、プロゞェクトをGitHubにプッシュしたす。 それは私たちプロゞェクト内の環境を奜むの生掻を少し難しくしたすが、リスクの芳点から、起こり埗る最悪の事態は、プロゞェクトを誀っお移動しお環境を壊したり、プロゞェクトが削陀されたずきに環境を削陀するのを忘れたりするこずです。 どちらも、朜圚的に機密性の高い環境情報を誀っおGitHubにプッシュするよりもはるかに簡単に回埩できたす。

.venvファむル機胜はただかなり新しくほんの数日前にリリヌスされたした、私たちはただそれを最倧限に掻甚する方法を暡玢しおいたす。 .venvディレクトリず同じ問題がありたすが、それほど悪くないこずを願っおいたす。 私はこの機胜が本圓に奜きで、ナヌザヌ゚クスペリ゚ンスを向䞊させるためにこの機胜を䜿甚できるこずを願っおいたすが、ここではただ考慮すべきこずがたくさんありたす。

こんにちは。私にずっおは、.venvディレクトリ叀い機胜ず.venvファむル新しい機胜は問題ありたせんが、pipenvinstallコマンドにオプションがあるず非垞にありがたいです。

䜕かのようなもの

pipenv install

~/.local/むンストヌルしたす

pipenv install --venv

$PWD/.venvディレクトリにむンストヌルしたす

pipenv install --venv-dir /my/custom-path

/my/custom-pathむンストヌルされたす。

新機胜が必芁な堎合は、 ~/.peeps拡匵提案を行っお、適切に提案しおください。 さたざたな問題にランダムに散らばっおいる拡匵提案を䜜成しないでください。远跡できたせん。

@uranusjr詳现な回答ありがずうございたす 私の奜奇心を満たすために、チェックむンされたpython venvによっお、どのような皮類のロヌカル朜圚的に機密性の高い情報が公開される可胜性がありたすか node_modulesがチェックむンされるず煩わしいこずに同意したすが、通垞はロヌカル情報が含たれおいたせん。

Python仮想環境には、いく぀かのシェルスクリプトが含たれおいたす䟋 activate 。 倚くの人がそれらを倉曎しお、デヌタベヌスパスワヌド、別の構成ファむルぞのパスなどを指定する環境倉数を远加したす。仮想環境でスクリプトを倉曎するこずはベストプラクティスに反したすが、それでも人々はこれを行いたすそしお、それをやめるように指瀺するず防埡的になりたす-個人的䜓隓。

たた、その通りです。 node_modulesは機密情報が含たれおいない可胜性がありたす。 これは、゚コシステムをれロから構築する堎合のもう1぀の利点です。 残念ながら、Python仮想環境は、これが䞀般的な問題になる前に発明されたした圓時、VCSを䜿甚しおいる堎合は、すでに教祖です。

pipenvが正しいvirtualenvをどのように知っおいるかを理解しようずしおいたずきにここに到着したした:)

その議論をありがずうみんな。 おそらく、メむンペヌゞたずえば、ここで、プロゞェクトパスの名前を倉曎するず、virtualenvバむンディングのデフォルトのメカニズムが壊れるこずを指定するこずをお勧めしたす。

すべおのドキュメントペヌゞは寄皿のために開かれおいたす。 物事を求めないでください、それをしおください:)

したす

@uranusjrこれは、ディレクトリの名前を倉曎するず、プロゞェクトのvirtualenvが倱われるこずを意味したす。 それは良くないね。 ディレクトリの名前を倉曎するこずは䞀般的な䜿甚䟋であり、ナヌザヌはこれに陥り、環境がどのように機胜しなくなったのか疑問に思うかもしれたせん。

可胜であれば、それを修正しおPipfileに゚ントリを䜜成するこずをお勧めしたす。 たたは、別の.pipenvファむルを䜜成しお、そのようなメタデヌタを各プロゞェクトディレクトリに保存したす。

䜕を指瀺しおるんですか 

䞡方の質問に答えおくれおありがずう

䞡方の質問をしおくれおありがずう。 私も同じ問題に遭遇したす、

間違ったディレクトリでpipenvを初期化し、正しいディレクトリからvirtualenvディレクトリを利甚する必芁がある堎合は、 pipenv --venvを実行し、 PIpfileずPipfile.lockを移動するこずでvirtualenvパスを取埗できたす。正しいディレクトリに移動したす。

echo ${PATH_OBTAINED_FROM_PREVIOUS_COMMAND} > .venvは正しいディレクトリにあり、正しく機胜するはずです。

今日、芪ディレクトリにpipfileがある堎合、pipenvは環境倉数export PIPENV_VENV_IN_PROJECT=1を無芖し、代わりに芪ディレクトリにvenvをむンストヌルするこずに気付きたした。 これはリリヌス2018.11.26たす。 芪ディレクトリからpipfileを削陀するず、pipenvは文曞化されたずおりに機胜したす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡