Pythonリポジトリ名とパッケージ名でハイフン/ダッシュを使用する

10
DataMan 2019-02-08 17:07.

gitリポジトリをpip-installableにしようとしています。その準備として、適切な規則に従うようにリポジトリを再構築しています。他のリポジトリを見て理解したところ、すべてのソースコードをリポジトリ名と同じ名前のパッケージに入れる必要があるということです。たとえば、私のリポジトリが呼び出されたmyrepo場合、ソースコードはすべてmyrepo。とも呼ばれるパッケージに入ります。

私のリポジトリには、読みやすくするためにハイフンが含まれていますmy-repo。したがって、同じ名前のパッケージを作成したい場合は、ハイフンも含まれます。https://python-packaging.readthedocs.io/en/latest/minimal.htmlPythonパッケージ名には「ハイフンを使用しないでください」と書かれています。ただしscikit-learn、名前にハイフンが含まれているような定評のあるパッケージを見てきました。私が気づいたことの1つは、scikit-learnリポジトリでは、パッケージ名がリポジトリ名と同じではなく、代わりにと呼ばれることsklearnです。

上記の私の議論は、次の質問に要約されると思います。

  1. リポジトリをパッケージ化する場合、リポジトリの名前とパッケージの名前の関係は何ですか?名前が一致しない場合に注意すべき点はありますか?
  2. パッケージ名にハイフンを含めても大丈夫ですか?リポジトリ名はどうですか?
  3. のパッケージ名scikit-learnsklearn、の場合、インストールするときに、pip install scikit-learn代わりにpip install sklearnどうすればよいですか?

1 answers

16
phd 2019-02-09 02:57.

あなたの最初のポイントに答えるために、言い換えさせてください https://stackoverflow.com/a/54223150/7976758 別の質問に。

誤解の最大の原因は、「パッケージ」という言葉がひどく過負荷になっていることです。ゲームには4つの異なる名前があります。リポジトリの名前、開発に使用されているディレクトリの名前(を含むsetup.pyディレクトリ)、含まれているディレクトリ__init__.pyとその他のインポート可能なモジュールの名前、PyPIでの配布の名前です。多くの場合、これら4つは同じまたは類似していますが、必須ではありません。

リポジトリと開発ディレクトリの名前は任意にすることができ、それらの名前は何の役割も果たしません。もちろん、適切な名前を付けるのは便利ですが、それは単に便利なことです。

Pythonファイルを含むディレクトリの名前は、インポートするパッケージの名前です。パッケージにインポート用の名前が付けられると、通常、名前は固定され、変更できなくなります。

ディストリビューションの名前は、PyPIの1ページとディストリビューションファイルの名前(ソースディストリビューション、eggs、wheels)を示します。それは人がsetup(name='distribution')呼ぶ名前です。

詳細な実例を示しましょう。私はと呼ばれるテンプレートライブラリを維持していますhttp://cheetahtemplate.org/。と呼ばれる開発ディレクトリで開発しcheetah3/ます。PyPIでの配布はhttps://pypi.org/project/Cheetah3/; これは私が付けた名前ですhttps://github.com/CheetahTemplate3/cheetah3/blob/bf0682b6a8e421c10583ff13f250a5fe973e50ef/SetupConfig.py#L12。トップレベルのモジュールはhttps://github.com/CheetahTemplate3/cheetah3/tree/master/Cheetahしたがって、import Cheetah.Templateまたはfrom Cheetah import Template; それは私がディレクトリを持っていることを意味しcheetah3/Cheetah/ます。

2の答えは次のとおりです。Pythonでは記述できないため、リポジトリ名とPyPIディストリビューション名にはダッシュを含めることができますが、パッケージ(__init__.pyファイルを含むディレクトリ)名とモジュール(.pyファイル)名にはダッシュを含めることはできません。これはimport xy-zzy減算とSyntaxErrorです。

ポイント3:サイト名とリポジトリ名はscikit-learn、https://github.com/scikit-learn/scikit-learn/blob/9f0b959a8c9195d1b6e203f08b698e052b426ca9/setup.py#L24、ただし、インポート可能なパッケージ(の最上位ディレクトリ__init__.py)はhttps://github.com/scikit-learn/scikit-learn/tree/master/sklearn。

PEP 8は、配布については説明せず、インポート可能なパッケージとモジュールについてのみ説明しているため、この質問とは何の関係もありません。

Related questions

MORE COOL STUFF

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ラーム・エマニュエルがシカゴ警察の警視を解雇し、身を守る

ラーム・エマニュエルがシカゴ警察の警視を解雇し、身を守る

シカゴ市長のラーム・エマニュエルは、シカゴの警察官による17歳のラカン・マクドナルドの銃撃の失敗した取り扱いに続いて、市の警視官、ギャリーF.マッカーシーを解雇しました。

ダグ・マローネの理想的な食事は、ボローニャのサンドイッチです。

ダグ・マローネの理想的な食事は、ボローニャのサンドイッチです。

写真:ローガンボウルズ/ゲッティイメージズジャイアンツがベンマカドゥーを解雇したので、他の誰かがジムトムスラの精神的後継者でなければなりません。季節だった。ジャガーズのダグ・マローネ監督は、孤独なボローニャサンドイッチに親しみを持っていることを考えると、すでにその役割を担う有力な候補者のようです。

人々がやめる最も一般的な時間、およびプッシュスルーする方法

人々がやめる最も一般的な時間、およびプッシュスルーする方法

時には、それが副次的なプロジェクト、仕事、人間関係、または人生の他の部分であるかどうかにかかわらず、辞めることが最良の選択肢です。しかし、何かを完了するためのリソースがないため、物事が困難になったとき、タイミングが私たちに必要なように「感じ」させたときにも、私たちは辞めます。

黒人女性、あなたの内訳へようこそ

黒人女性、あなたの内訳へようこそ

著者のベニルデ・リトルは、母親の死後のうつ病との戦いを新しい回想録「Welcome toMyBreakdown」で記録しています。チェスター・トイの作家ベニルデ・リトルは、黒人女性にそれが大丈夫だと知ってもらいたいと思っています。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language