JuliaPy / JuliaPy/PyCall.jl

pyimport_conda not finding the package?

Abierto
#878 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
1.5k
Forks
186
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

MWE:

```julia
using PyCall
ENV["PYTHON"] = ""
using Pkg; Pkg.build("PyCall")
pyimport_conda("scipy.optimize", "scipy")
```

Outputs:

```julia
Conda ─→ `C:\Users\accou\.julia\packages\Conda\x5ml4\deps\build.log`
Building PyCall → `C:\Users\accou\.julia\packages\PyCall\tqyST\deps\build.log`
[ Info: Installing scipy.optimize via the Conda scipy package...
[ Info: Running `conda install -y scipy` in root environment
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.

PyError (PyImport_ImportModule

The Python package scipy.optimize could not be imported by pyimport. Usually this means
that you did not install scipy.optimize in the Python version being used by PyCall.

PyCall is currently configured to use the Julia-specific Python distribution
installed by the Conda.jl package. To install the scipy.optimize module, you can
use `pyimport_conda("scipy.optimize", PKG)`, where PKG is the Anaconda
package the contains the module scipy.optimize, or alternatively you can use the
Conda package directly (via `using Conda` followed by `Conda.add` etcetera).

Alternatively, if you want to use a different Python distribution on your
system, such as a system-wide Python (as opposed to the Julia-specific Python),
you can re-configure PyCall with that Python. As explained in the PyCall
documentation, set ENV["PYTHON"] to the path/name of the python executable
you want to use, run Pkg.build("PyCall"), and re-launch Julia.

)
ImportError('DLL load failed while importing _iterative: The specified module could not be found.')
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\optimize\__init__.py", line 400, in
from .optimize import *
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\optimize\optimize.py", line 36, in
from ._numdiff import approx_derivative
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\optimize\_numdiff.py", line 6, in
from scipy.sparse.linalg import LinearOperator
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\sparse\linalg\__init__.py", line 111, in
from .isolve import *
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 4, in
from .iterative import *
File "C:\Users\accou\.julia\conda\3\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 8, in
from . import _iterative

pyimport(::String) at PyCall.jl:547
pyimport_conda(::String, ::String, ::String) at PyCall.jl:711
pyimport_conda(::String, ::String) at PyCall.jl:704
top-level scope at test.jl:103
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza ejecutando el Windows MWE y revisa el stack trace, especialmente pyimport_conda en PyCall.jl alrededor de las líneas 704-711. Comprueba cómo se carga el paquete scipy instalado por Conda y si se puede reproducir el fallo de DLL notificado; se considera terminado cuando pyimport_conda("scipy.optimize", "scipy") se importa correctamente después de seguir los pasos de instalación documentados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
julia, python
Área
backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.