Linuxマシンを対象としたPythonパッケージを使用して、ロケールファイルをアクセス可能な場所にインストールする必要があります。今、私はそれらをsys.prefix + "/share/locale/"
にインストールしています。Pythonデータファイルをインストールしてから再度検索する
しかし、私はUbuntuとpipで小さな警告を見つけました。デフォルトでは、Ubuntuはインストールされているパッケージを/usr/local
にインストールし、インストール時にはsys.prefix
に設定します。ただし、インストール後にパッケージを実行すると、接頭辞は/usr
になります。つまり、自分のコードが/usr/local
にインストールされているロケールファイルを見つけることができません。
私は単に場所をハードコードすることができますが、パッケージの移植性が低く、ユーザーがルートとしてインストールする必要があるため、これをやめたくありません。これらはsetup.pyにdata_files
として追加され、pythonパッケージとしては検出されません。
のインストール後にパッケージでロケールファイルを確実に見つける方法を教えてください。
インストール中にパッケージの__init__.py
に行を追加すると、ロケールディレクトリの場所を示す変数が作成されました。ただし、ソースファイルを変更せずにインストールされているファイルを編集するのは簡単ではありませんでした。
これはPython 3専用パッケージです。
/usr/local/binに/ usr/binに2つのPythonが存在していませんか?私はPythonが 'sys.prefix'をそのように変更するとは思わない。しかし、2つの異なるPythonsは、2つの異なる接頭辞を持つことがあります。 – phd
@phd 'find' echo $ PATH | tr ':' "" -name python3' ''は '/ usr/bin/python3'のみを表示します。これは、Ubuntuが/ usr/localに移動してプレフィックスを変更するためにpipでユーザがインストールしたファイルを必要としているためですが、メインマシンのファイルを変更する必要があるからです。 – DonyorM