Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Unable to import Python module

オープン
#757 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
python
領域
tooling

調査の方向性

LHIPA.py と issue に示されている Julia プログラムから始め、表示されている PythonCall 環境で ModuleNotFoundError を再現します。報告されている sys.path とインストール済みディストリビューションを import の試行と比較します。PythonCall とモジュール/package の import のどちらに原因があるかを特定し、検証済みの解決策を文書化できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

question

To be honest, I'm a little perplexed at how this is failing.

For a background, I need to import a python file that I wrote and is stored in the local directory (LHIPA.py). That file, in turn, needs to import PyWavelets, which has been installed in the .Condapkg environment. I have confirmed in my Julia program as well as in the python file that it is using the python environment created by PythonCall.jl. I've also confirmed, in the Python program, that PyWavelets is an installed package, yet I get this error message: ERROR: Python: ModuleNotFoundError: No module named 'pywavelets'

First the Julia program as well as its output:

...

ENV["JULIA_CONDAPKG_BACKEND"] = "Null"
ENV["JULIA_PYTHONCALL_EXE"] = raw"/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.11'"

using PythonCall
println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
println("\n PythonCall is using", PythonCall.python_executable_path())
println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

 pth = (@__DIR__)        # Path where the python routines are
 pyimport("sys").path.append(pth)  # append path

println("sys.path = ", pyimport("sys").path)
println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
println("ENV['JULIA_CONDAPKG_BACKEND']  = ", ENV["JULIA_CONDAPKG_BACKEND"] )
println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
println("ENV['JULIA_PYTHONCALL_EXE']  = ", ENV["JULIA_PYTHONCALL_EXE"] )

LH = pyimport("LHIPA")

And the output looks as expected:

PythonCall is using/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/bin/python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sys.path = ['/Users/MattPetersonsAccount/.julia/packages/PythonCall/83z4q/pysrc', 
'/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python311.zip', 
'/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.11', 
'/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.11/lib-dynload', 
'/Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.11/site-packages', 
'/Users/MattPetersonsAccount/Documents/Development/PsychoPy/Spatial n-back 2']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ENV['JULIA_CONDAPKG_BACKEND']  = Null
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ENV['JULIA_PYTHONCALL_EXE']  = /Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.11'

The Python file, LHIPA.py, looks like this:

from platform import python_version
print("LHIPA python version is: ",python_version())

import importlib_metadata
dists = importlib_metadata.distributions()
for dist in dists:
    name = dist.metadata["Name"]
    version = dist.version
    print(f'found distribution {name}=={version}')
import sys
print("\n",sys.prefix,"\n")

import math
import PyWavelets

And again, the output is as expected:

LHIPA python version is:  3.11.0
found distribution setuptools==82.0.1
found distribution wheel==0.46.3
found distribution importlib_metadata==8.7.1
found distribution pip==26.0.1
found distribution packaging==26.0
found distribution numpy==2.4.4
found distribution PyWavelets==1.9.0
found distribution zipp==3.23.0

 /Users/MattPetersonsAccount/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default 

So, I've confirmed that Julia and Python are using the same environment (unless one of them is reporting incorrectly, or there is an error in front of my eyes I am missing) and I've confirmed that PyWavelets in the Python environment. Yet, I get an import error.

Any ideas? Is there something blatantly obvious that I'm missing?

主要言語
Julia
スター
1.1k
フォーク
89
平均マージ
2日 15時間
マージ済み PR(30日)
7

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaPy/PythonCall.jl のほかの issue

JuliaPy/PythonCall.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。