[解決済み] entry_points/console_scriptsとsetup.py内のスクリプトの違い?
2023-02-18 01:01:02
質問
Python コンソールスクリプトをインストールするには、基本的に以下の2つの方法があります。
setup.py
:
setup(
...
entry_points = {
'console_scripts': [
'foo = package.module:func',
],
}
)
と
setup(
...
scripts = [
'scripts/myscript.sh'
]
)
どのような違いがあるのでしょうか?最初のアプローチでは、私のスクリプトに素敵で具体的な名前を選択することができますね。異なる本来の目的、互換性 (setuptools, distutils, ...?), 使用法、...? 私はかなり混乱しており、素敵な精巧な応答は、私(そしておそらく他の人も)このすべてを適切に理解するのに役立つ可能性があります。
更新しました。 私が質問して以来 PyPA が公開されました。 このトピックに関するクールなドキュメント .
どのように解決するのですか?
(素晴らしい) Click パッケージのドキュメント は、いくつかの理由を示唆しています。 をスクリプトではなくエントリーポイントを使う理由として挙げています。
- クロスプラットフォームの互換性や
-
インタープリタが
__name__
を__main__
に変更すると、コードが二重にインポートされる可能性があります (別のモジュールがあなたのスクリプトをインポートする場合)。
として使用するための関数を実装するための良い方法です。
entry_points
として使用するための関数を実装する良い方法です。
関連
-
[解決済み] -saveと-save-devの違いは何ですか?
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み] リストにおけるdel、remove、popの違いについて
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] PythonモジュールとPythonパッケージの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Python 言語を決定するには?
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?