inducer / pymetis

A Python wrapper around Metis, a graph partitioning package
http://mathema.tician.de/software/pymetis
Other
164 stars 32 forks source link

part_mesh not available #52

Closed fabiodelogu closed 1 year ago

fabiodelogu commented 1 year ago

Dear @inducer,

first of all thanks for this great work of developing pymetis. I am one of the developers of the hydrology system package that you can find at https://github.com/c-hydro . We would like to use pymetis to improve our performances in the computations of the river discharges in our main hydrological model named continuum.

I found that installing the pymetis package in a conda python3.8 environment using pip in the following way: pip install pymetis==2022.1 the package seems to be effected by a problem related to the version because the "pymetis.part_mesh" is not available at the end of the installation.

To avoid this problem, I directly downloaded the pymetis package from the github repository in a zip format and I installed it in the same conda python3.8 environment using: pip install /path/pymetis-main.zip and in this case all work like a charm.

Thank you for your help and support Fabio

inducer commented 1 year ago

Can't reproduce, sorry:

$ python -m venv pymetis-test
$ source pymetis-test/bin/activate
(pymetis-test) $ pip install pymetis==2022.1
/home/andreas/tmp/pymetis-test/lib/python3.11/site-packages/pip/_vendor/packaging/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
  warnings.warn(
Collecting pymetis==2022.1
  Downloading PyMetis-2022.1.tar.gz (338 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 338.5/338.5 kB 5.4 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, pymetis
  DEPRECATION: pymetis is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for pymetis ... done
Successfully installed pymetis-2022.1 six-1.16.0
(pymetis-test) $ python
Python 3.11.2 (main, Feb 12 2023, 00:48:52) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymetis
>>> pymetis.part_graph
<function part_graph at 0x7f8f90be6c00>
>>> 

(I no longer have Py 3.8, above shows Py 3.11.)

inducer commented 1 year ago

Feel free to comment/reopen if you've got a reproducer. Also, check if you've got a module named pymetis.py floating around which might be getting imported instead. Maybe check pymetis.__file__ to see what's getting imported.

fabiodelogu commented 1 year ago

hi @inducer, I noticed that you tried with "part_graph" but this part also work in my case. Did you test the "part_mesh" function too? in any case thank you for your answer and sorry for wasting your time :)

inducer commented 1 year ago

Ah, sorry. I got these mixed up. part_mesh is not part of the 2022.1 release. I should roll a release. I'll see if I can make time for that.

inducer commented 1 year ago

https://pypi.org/project/PyMetis/2023.1/#files

fabiodelogu commented 1 year ago

thank you @inducer :) I will try to set the pymetis library using the new release :))