0

Pythonモジュール(https://github.com/Yannbane/Tick.py)とPythonプログラム(https://github.com/Yannbane/Flatland.py)を作成しました。プログラムはモジュールをインポートしますが、それがないと動作しません。私は、プログラムを実行する前に、これらのファイルの両方をダウンロードすることを意図していましたが、これについては少し心配しています。

プログラムに、次の行を追加しました。

sys.path.append("/home/bane/Tick.py")
import tick

"/home/bane/Tick.py"含める必要のあるモジュールのローカルリポジトリへのパスですが、これは明らかに他の人とは異なります。どうすればこの状況をよりよく解決できますか?

4

2 に答える 2

3

@Lattywareによって提案されたのは、実行可能なオプションです。ただし、コアの依存関係がメインプログラムにバインドされていることは珍しくありません(たとえば、DjangoとPyDevがこれを行います)。これは、メインコードがライブラリの特定のバージョンに対して微調整されている場合は特に正常に機能します。

コードのメンテナンスに関してLattywareが言及した問題を回避するには、gitを調べる必要がありますsubmodules。これにより、コードのバージョン管理を適切に保ちながら、この種のレイアウトを正確に行うことができます。

ディレクトリの構造から、両方のファイルが同じディレクトリにあるように見えます。これは、同じパッケージの2つのモジュールである場合よりもわかりやすい場合があります。その場合__init__.py、ディレクトリに呼び出される空のファイルを追加するだけで、インポートは次のように機能します。

import bane.tick

また

from bane import tick

そうそう...モジュール名には小文字を使用する必要があります(Pythonでコーディングする場合は、 PEP8を詳しく調べる価値があります!:)

HTH!

于 2012-05-10T10:58:26.067 に答える
2

モジュールをPythonPackageIndexに送信してみてください。そうすれば、ユーザーはモジュールをパスに簡単にインストールでき( )、 Pythonpip tickパスに追加しなくてもインポートできます。

それ以外の場合は、モジュールもダウンロードして、プログラムのサブディレクトリに配置するように指示することをお勧めします。それが大変な作業だと本当に感じた場合は、モジュールのコピーをプログラムのリポジトリに配置することができます(もちろん、両方のバージョンを最新の状態に保つことを意味しますが、これは少し面倒ですがシンボリックリンクを使用するだけで可能かもしれないと思います)。

また、リポジトリ名が少し誤解を招く可能性があることにも注意してください。大文字と小文字が重要になることが多いためtick.py、モジュールと一致するようにリポジトリを呼び出し、Pythonの命名規則を使用することをお勧めします。

于 2012-05-10T10:26:46.797 に答える