pyjulia icon indicating copy to clipboard operation
pyjulia copied to clipboard

Import Error - Module cannot be found

Open calvinp0 opened this issue 3 years ago • 5 comments

Hi,

I am attempting to use PyCharm as my IDE debugger. In my code I call on PyJulia to import a package that our group created. However, after we attempt to run this code

import julia
import diffeqpy

julia.install()
diffeqpy.install()
from julia.api import Julia

jl = Julia(compiled_modules=False)
from julia import Pkg

Pkg.add("ReactionMechanismSimulator")
from julia import ReactionMechanismSimulator

We receive an error during the last line, the import line, saying that there was an Import Error and that ReactionMechanismSimulator could not be found. Any advice on how to deal with this issue?

calvinp0 avatar Nov 22 '22 16:11 calvinp0

What is the output of Pkg.status()? If you start Julia directly, do you see the package in your environment? How did you install julia, pyjulia, and python?

mkitti avatar Nov 22 '22 16:11 mkitti

Thanks for the response!

Here is the Pkg.status("ReactionMechanismSimulator"):

Status `~/mambaforge/envs/rmg_env/share/julia/site/environments/v1.8/Project.toml`
  [c2d78dd2] ReactionMechanismSimulator v0.4.0 `https://github.com/ReactionMechanismGenerator/ReactionMechanismSimulator.jl.git#main`

In regards to the installation of all three, Python is 3.7.12 and it was installed using an mamba, creating the env from environment.yml file. PyJulia was also installed that way.

Then for julia, the commands we ran:

python -c "import julia; julia.install(); import diffeqpy; diffeqpy.install()"

julia -e 'using Pkg; Pkg.add(PackageSpec(name="ReactionMechanismSimulator",rev="main")); using ReactionMechanismSimulator;'

calvinp0 avatar Nov 22 '22 16:11 calvinp0

After some fiddling around... I was able to import ReactionMechanismSimulator but now when I attempt to call a function from it, it cannot find it.

input

import julia.Pkg as PKG
PKG.add("ReactionMechanismSimulator")
from julia import ReactionMechanismSimulator
from julia.ReactionMechanismSimulator import makefluxdiagrams

output

Traceback (most recent call last):
  File "/home/calvin/mambaforge/envs/rmg_env/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3552, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-18-8708db1d8430>", line 1, in <module>
    from julia.ReactionMechanismSimulator import makefluxdiagrams
  File "/snap/pycharm-professional/311/plugins/python/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/home/calvin/mambaforge/envs/rmg_env/lib/python3.7/site-packages/julia/core.py", line 260, in load_module
    raise ImportError("{} not found".format(juliapath))
ImportError: ReactionMechanismSimulator.makefluxdiagrams not found

The current package status:

PKG.status("ReactionMechanismSimulator")
      Status `~/.julia/environments/v1.6/Project.toml`
  [c2d78dd2] ReactionMechanismSimulator v0.4.0 `https://github.com/ReactionMechanismGenerator/ReactionMechanismSimulator.jl.git#main`

In case you are wondering, I imported Pkg as import julia.Pkg as PKG because whenever I attempt to do from julia import Pkg, I receive a segmentation fault on PyCharm. No idea why.

calvinp0 avatar Nov 22 '22 17:11 calvinp0

Can you call ReactionMechanismSimulator.makefluxdiagrams()?

mkitti avatar Nov 22 '22 20:11 mkitti

Sorry for the late response. I attempted your suggestion but get the same issue:

ReactionMechanismSimulator.makefluxdiagrams()
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/calvin/mambaforge/envs/t3_env/lib/python3.7/site-packages/julia/core.py", line 175, in __getattr__
    return self.__try_getattr(name)
  File "/home/calvin/mambaforge/envs/t3_env/lib/python3.7/site-packages/julia/core.py", line 198, in __try_getattr
    raise AttributeError(name)
AttributeError: makefluxdiagrams

calvinp0 avatar Nov 24 '22 10:11 calvinp0