PIPはランチャーでFatal errorが発生します。
Windows のコマンドラインで pip install xxx installer と入力すると、ランチャーで致命的なエラーが発生します。
プロンプトは、pip.exeの起動時にランチャーが見つからなかったことを意味します。
実は、pip.exeはパッケージ化されたpyスクリプトで、実行すると自動的にpython.exeを呼び出して、内部のpyスクリプトを実行します。
このエラーは、おそらくpython.exeが見つからないということでしょう。
そこで、WinHEXを使ってScriptsディレクトリの下にあるpip.exeを開いて確認してみると、ファイルの末尾にあった重要なメッセージは。
くっそー、こいつpip.exeの中にpython.exeの絶対パス書いてるやんけー。
Windows用のpythonはクソ遅刻だ!
そんなpythonは完全にポータブルじゃない!
追記:システムの再インストール時に再インストールしないように、インストールしたpythonを他のディレクトリに詰め込みました。
グリーンソフトとして実行します。もちろん、環境変数にpythonディレクトリとScriptsディレクトリを追加してください。
そして、Scriptsディレクトリ以下のファイルを全て確認したところ、ほぼ全てのexeとpyのスクリプトにpython.exeの絶対パスが書かれていました!!!!
python.exeが環境変数に追加されたので、絶対パスを使う必要は全くないので、手動で相対パスに変更してみました。
以下の画像の通りです。
保存後、再度pip.exeを実行すれば、正常に動作します。
ちなみに、Scripts以下のファイルは全て同じように変更したので、基本的にはPortableのままです。
pythonを任意のフォルダに移動し、環境変数PATHに追加しても問題なく動作します。
また、pythonのコマンドラインツールとして、一時的に環境変数を追加するバッチコマンドを記述することもできます。
下記をpython_cmd.batとして保存するだけです。
@title Python
@set PATH=%PATH%%%~dp0%;
@set PATH=%PATH%%%~dp0%\Scripts;
@cmd /k
追記です。この絶対パスを検証するために、さらに何度かインストーラを使ってpythonのインストールを繰り返しましたが、同じでした。
ファイルの変更時間を見ればわかるように、Scripts以下のファイルはインストール中に動的に変更されました。
他のコアファイルはすべて2018年に変更されており、これらのファイルのみインストール日となっています。
インストール時にpython.exeのデッドインのパスを書き込んでいるため。
この操作の波には唖然としました
関連
-
PythonはWordの読み書きの変更操作を実装している
-
[解決済み】TypeError: strのデコードはサポートされていません。
-
[解決済み] [【解決済み】cmakeエラー「ソースにCMakeLists.txtが含まれていないようです」。
-
Python環境設定時のVSコードの問題:'cmd'が内部コマンドまたは外部コマンドとして認識されない
-
[解決済み] TypeError: 'str' と 'list' オブジェクトをメールに連結することはできません。
-
[解決済み] tf.compat.v1.train.exponential_decay: グローバルステップ = 0
-
[解決済み] Pythonのnumpy.exp関数におけるオーバーフローエラー
-
[解決済み] PythonでPDFを特定のプリンタに無音印刷する
-
[解決済み] フラスコでPythonマルチプロセッシング
-
python encountered ValueError: check_hostname requires server_hostname 解決法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ImportError: encodings'という名前のモジュールがない
-
[解決済み】「RuntimeWarning: divide by zero encountered in double_scalars」を修正する方法
-
Pandas reports TypeError: 'Series' object are mutable, thus they cannot be hashed.
-
[解決済み] Django CSRF クッキーが設定されていない
-
[解決済み] python辞書エラー AttributeError: 'list' オブジェクトには 'keys' という属性がありません。
-
[解決済み] Tensorflowの平均二乗誤差損失関数
-
[解決済み] anaconda-navigatorがアプリケーションのロードで立ち往生する
-
[解決済み] TypeError: 'unicode'オブジェクトは呼び出し可能ではありません。
-
[解決済み] sys.stdin.readline() はプロンプトなしで読み、「間に何もない」を返します。
-
[解決済み] Django モデル "doesn't declare an explicit app_label"