pulp icon indicating copy to clipboard operation
pulp copied to clipboard

MOSEK in one Conda environment causing error in another

Open haochenz96 opened this issue 2 years ago • 1 comments

Details for the issue

What did you do?

I have two Conda environment: snakemake- I set up this one first and had been using it without issue. It does not have MOSEK solver in it. aa - I recently set up this environment, and MOSEK was installed.

After aa is set up and MOSEK installed into it, I have the following error while trying to import pulp in snakemake:

>>> import pulp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/juno/work/iacobuzc/haochen/mambaforge/envs/snakemake/lib/python3.11/site-packages/pulp/__init__.py", line 34, in <module>
    from .pulp import *
  File "/juno/work/iacobuzc/haochen/mambaforge/envs/snakemake/lib/python3.11/site-packages/pulp/pulp.py", line 99, in <module>
    from .apis import LpSolverDefault, PULP_CBC_CMD
  File "/juno/work/iacobuzc/haochen/mambaforge/envs/snakemake/lib/python3.11/site-packages/pulp/apis/__init__.py", line 7, in <module>
    from .mosek_api import *
  File "/juno/work/iacobuzc/haochen/mambaforge/envs/snakemake/lib/python3.11/site-packages/pulp/apis/mosek_api.py", line 32, in <module>
    class MOSEK(LpSolver):
  File "/juno/work/iacobuzc/haochen/mambaforge/envs/snakemake/lib/python3.11/site-packages/pulp/apis/mosek_api.py", line 40, in MOSEK
    env = mosek.Env()
          ^^^^^^^^^
AttributeError: module 'mosek' has no attribute 'Env'

What did you expect to see?

What did you see instead?

Useful extra information

My guess is that perhaps I installed MOSEK into the base environment and had to remove it and reinstall into aa, or have some environment variables set or that I have the MOSEK license at ~/mosek/mosek.lic, MOSEK is detected by pulp in snakemake but imported as an empty script (per this issue https://groups.google.com/g/mosek/c/MB_-kH-mSaQ).

I changed this line to:

    except (ImportError, AttributeError):

And it seems to have solved the error.

The info below often helps, please fill it out if you're able to. :)

What operating system are you using?

  • [ ] Windows: ( version: ___ )
  • [x] Linux: ( distro: CentOS 7 )
  • [ ] Mac OS: ( version: ___ )
  • [ ] Other: ___

I'm using python version:

  • [ ] 2.7
  • [ ] 3.4
  • [ ] 3.5
  • [ ] 3.6
  • [ ] Other: 3.11

I installed PuLP via:

  • [ ] pypi (python -m pip install pulp)
  • [ ] github (python -m pip install -U git+https://github.com/coin-or/pulp)
  • [x] Other: Conda

Did you also

  • [x] Tried out the latest github version: https://github.com/coin-or/pulp
  • [x] Searched for an existing similar issue: https://github.com/coin-or/pulp/issues?utf8=%E2%9C%93&q=is%3Aissue%20

haochenz96 avatar Jun 22 '23 01:06 haochenz96

If I understand the error there, you need to rename the file so it's not mosek. You're confusing python with modules that have the name of libraries.

pchtsp avatar Jan 16 '24 16:01 pchtsp