今更新されたWindows 10でCygwin 64を使用しています。いくつかの関連パッケージのバージョン:
- フュージョン:3.18.0-1
- python3:3.8.6-1
- python2:2.7.18-4
私もXサーバーにMobaXTermを使用します(そしてうまくいきます。例えばxclockを実行できます)
Cygwin bashセッション(mintty内)でmeldを実行すると、次のようになります。
Traceback (most recent call last):
File "/usr/bin/meld", line 71, in <module>
import meld.conf
ModuleNotFoundError: No module named 'meld'
なぜこれが起こり、どのように正しく実行できますか?
メモ:
- 私考えるこの質問はここのトピックに関するものですが、わからない場合はコメントを残してください、SUまたは他の場所に移動します。
- 関連する質問は実際にここにもっと関連しています...:import meld.conf エラーのため、ubuntu 16.04 で meld を起動できません。。
答え1
meldはpython3.6用にハードコードされているようです。
https://cygwin.com/packages/x86_64/meld/meld-3.18.0-1
ただし、デフォルトは3.8を指します。
$ alternatives --display python3
python3 - status is auto.
link currently points to /usr/bin/python3.8
/usr/bin/python3.8 - priority 38
/usr/bin/python3.6 - priority 36
/usr/bin/python3.7 - priority 37
Current `best' version is /usr/bin/python3.8.
3.6に設定してみてください
$ alternatives --config python3
There are 3 programs which provide 'python3'.
Selection Command
-----------------------------------------------
*+ 1 /usr/bin/python3.8
2 /usr/bin/python3.6
3 /usr/bin/python3.7
Enter to keep the current selection[+], or type selection number: 2
融合をもう一度テストしてください。
答え2
@matzeriが指摘したように、meldはPython 3.6でハードコードされているように見え、2021年9月現在、Cygwin64にはPython3の基本的な代替案としてPython 3.8があります。
これで、すべてのアプリケーションのデフォルト設定を変更したくありませんが、まだ手動で融合自体を強制することができます。
/usr/bin/meld
にコピー/usr/local/bin/meld
- で
/usr/local/bin/meld
以下を交換します。
#!/usr/bin/python3
そして:
#!/usr/bin/python3.6
これは、少なくともモジュールの欠落の問題を解決します。その他。
次に、Fusion自体を更新するときに削除/更新するローカルバージョンがあることを忘れないでください。
編集する:他のLinuxディストリビューションでこの問題が発生した場合、即時の問題はpythonのパッケージ検索パスにmeldサブディレクトリが見つからないことです。したがって、meldがPythonバージョンNMで実行されていると仮定すると、欠落する可能性があります。
/usr/lib/pythonN.M/site-packages/meld/
あるいは、Pythonが「サイトパッケージ」を保存するmeldサブディレクトリです。これは時々、異なるPythonバージョンを使用するためにMeldをハードコーディングすることによって解決することができます。それバージョンには適切な Meld site-packages フォルダがあります。それ以外の場合は、meldを手動で再インストールまたはインストールして、サブディレクトリが正しい場所にあることを確認する必要があります。
答え3
@einpoklumが説明する問題の代替ソリューションです。
meld/conf.py
パスを追加する場所(例:
export PYTHONPATH=/usr/lib/pythonN.M/site-packages
パスは次のように見つけることができます。
locate meld conf.py
export
たとえば、スタートアップファイルに追加できます.bashrc
(このセクションはUnixに適用され、Windowsにもbash
適用されます)。PYTHONPATH
答え4
私は最近Cygwinパッケージを更新しましたが、「ModuleNotFoundError: 'meld'というモジュールがありません」というエラーが原因で失敗しました。私の場合、Meldをバージョン3.16.4にダウングレードするのに役立ちました。