Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem installing lap if numpy not already installed #38

Open
shachargluska opened this issue Feb 21, 2022 · 13 comments · May be fixed by #52
Open

Problem installing lap if numpy not already installed #38

shachargluska opened this issue Feb 21, 2022 · 13 comments · May be fixed by #52

Comments

@shachargluska
Copy link

Hi,
looks like setup.py raises an ImportError if lap can't find numpy.

Collecting lap
  Using cached lap-0.4.0.tar.gz (1.5 MB)
Building wheels for collected packages: lap
  Building wheel for lap (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /root/test/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j7vxs02x/lap/setup.py'"'"'; __file__='"'"'/tmp/pip-install-j7vxs02x/lap/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-mo5fc8iw
       cwd: /tmp/pip-install-j7vxs02x/lap/
  Complete output (12 lines):
  Partial import of lap during the build process.
  Traceback (most recent call last):
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 127, in get_numpy_status
      import numpy
  ModuleNotFoundError: No module named 'numpy'
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 236, in <module>
      setup_package()
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 220, in setup_package
      raise ImportError('lap requires numpy, '
  ImportError: lap requires numpy, please "pip install numpy".
  ----------------------------------------
  ERROR: Failed building wheel for lap

pip install lap[alldeps] still throws this error, but succeeds with pip 20.0.2.
For pip 22.0.3, this fails again:

Collecting numpy>=1.10.1
  Using cached numpy-1.22.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.8 MB)
Using legacy 'setup.py install' for lap, since package 'wheel' is not installed.
Installing collected packages: lap, numpy
  Running setup.py install for lap ... error
  error: subprocess-exited-with-error

  × Running setup.py install for lap did not run successfully.
  │ exit code: 1
  ╰─> [13 lines of output]
      Partial import of lap during the build process.
      Traceback (most recent call last):
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 127, in get_numpy_status
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 236, in <module>
          setup_package()
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 220, in setup_package
          raise ImportError('lap requires numpy, '
      ImportError: lap requires numpy, please "pip install numpy".
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> lap

pip install numpy lap also doesn't solve this, because lap is (possible) setup before numpy.

I think checking for the import in setup.py is problematic, since setuptools.setup isn't called yet.
I think the import check should be moved to the package itself.

Currently this can be worked around by using 2 separate pip calls. This makes it harder to include lap in a requirements.txt file.

@gatagat
Copy link
Owner

gatagat commented Feb 22, 2022

Hi @shachargluska,

thanks for reporting this, I am aware of this being suboptimal and have it on the todo list to be patched. My plan is to get rid of the current setup.py altogether, ideally going for poetry. Lately I don't have much spare time on my hands, so this might take a while.

If you had time, experience and will to help with that, let me know.

Cheers,
Tomas

ljwun pushed a commit to ljwun/BRA that referenced this issue Aug 12, 2022
@rnixx
Copy link

rnixx commented Oct 10, 2022

My plan is to get rid of the current setup.py altogether

Why not just passing install_requires kw argument to setup() call?

@Mr-LiuDC
Copy link

Same issue here.

Environment;

Ubuntu 20.04.4 LTS  64 Bit
Python version  3.7.15
pip version  22.2.2
gcc, g++ version 9.4.0

Here is my requirements.txt

Flask==2.2.2
h5py==2.10.0
keras==2.2.4
paddlex==2.1.0
filelock==3.8.0
pyntcloud==0.1.2
pythreejs==2.1.1
protobuf==3.20.0
tensorflow==1.13.1
fuzzywuzzy==0.18.0
paddlepaddle==2.3.2
scikit-image==0.16.2
opencv-python==4.1.0.25
image-classifiers==1.0.0

Error details:

  Running setup.py install for lap ... error
  error: subprocess-exited-with-error
  
  × Running setup.py install for lap did not run successfully.
  │ exit code: 1
  ╰─> [13 lines of output]
      Partial import of lap during the build process.
      Traceback (most recent call last):
        File "/tmp/pip-install-ojp61hph/lap_766c0d88933341398e3143ad59c12026/setup.py", line 127, in get_numpy_status
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      Traceback (most recent call last):
        File "<string>", line 36, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-ojp61hph/lap_766c0d88933341398e3143ad59c12026/setup.py", line 236, in <module>
          setup_package()
        File "/tmp/pip-install-ojp61hph/lap_766c0d88933341398e3143ad59c12026/setup.py", line 220, in setup_package
          raise ImportError('lap requires numpy, '
      ImportError: lap requires numpy, please "pip install numpy".
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> lap

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

@xxaier
Copy link

xxaier commented Apr 23, 2023

same error

@mp075496706
Copy link

Hi, looks like setup.py raises an ImportError if lap can't find numpy.

Collecting lap
  Using cached lap-0.4.0.tar.gz (1.5 MB)
Building wheels for collected packages: lap
  Building wheel for lap (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /root/test/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j7vxs02x/lap/setup.py'"'"'; __file__='"'"'/tmp/pip-install-j7vxs02x/lap/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-mo5fc8iw
       cwd: /tmp/pip-install-j7vxs02x/lap/
  Complete output (12 lines):
  Partial import of lap during the build process.
  Traceback (most recent call last):
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 127, in get_numpy_status
      import numpy
  ModuleNotFoundError: No module named 'numpy'
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 236, in <module>
      setup_package()
    File "/tmp/pip-install-j7vxs02x/lap/setup.py", line 220, in setup_package
      raise ImportError('lap requires numpy, '
  ImportError: lap requires numpy, please "pip install numpy".
  ----------------------------------------
  ERROR: Failed building wheel for lap

pip install lap[alldeps] still throws this error, but succeeds with pip 20.0.2. For pip 22.0.3, this fails again:

Collecting numpy>=1.10.1
  Using cached numpy-1.22.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.8 MB)
Using legacy 'setup.py install' for lap, since package 'wheel' is not installed.
Installing collected packages: lap, numpy
  Running setup.py install for lap ... error
  error: subprocess-exited-with-error

  × Running setup.py install for lap did not run successfully.
  │ exit code: 1
  ╰─> [13 lines of output]
      Partial import of lap during the build process.
      Traceback (most recent call last):
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 127, in get_numpy_status
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 236, in <module>
          setup_package()
        File "/tmp/pip-install-oqm50v48/lap_691c504a80774ff7a3048730fdd528c8/setup.py", line 220, in setup_package
          raise ImportError('lap requires numpy, '
      ImportError: lap requires numpy, please "pip install numpy".
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> lap

pip install numpy lap also doesn't solve this, because lap is (possible) setup before numpy.

I think checking for the import in setup.py is problematic, since setuptools.setup isn't called yet. I think the import check should be moved to the package itself.

Currently this can be worked around by using 2 separate pip calls. This makes it harder to include lap in a requirements.txt file.

Yes, I successfully installed the LAP library when using version 22.0.3 of PIP. So, for now, you can use this version of pip for installation.

@thiagodaedalus
Copy link

I am also having this issue.

@izagood
Copy link

izagood commented May 12, 2023

same error

@izagood
Copy link

izagood commented May 12, 2023

I think the error probably depends on the pip version. (python 3.9.10)

I had a error in pip 23.1.2 version

but pip 21.1.1 version successfully installed

@ukersn
Copy link

ukersn commented Jun 12, 2023

I think the error probably depends on the pip version. (python 3.9.10)

I had a error in pip 23.1.2 version

but pip 21.1.1 version successfully installed

Thank you. I've been searching online for a long time but I can't find a solution. Your method is actually useful

@Penguido
Copy link

Inspired by mp075496706 and izagood, I solved the problem with the following lines of command.

pip install --upgrade pip==22.0.3 # version 23.1.x of pip won't work and the --upgrade option uninstalls the current version to avoid conflicts, so you can't omit it.
pip install numpy
pip install lap

@cshimmin cshimmin linked a pull request Oct 17, 2023 that will close this issue
@ottokruse
Copy link

ottokruse commented Nov 10, 2023

I'm running into the same error when installing with https://github.com/mitsuhiko/rye instead of pip

There seems to be no work around with rye because even if I install numpy first, installing lap fails.

rye add numpy
rye sync
rye run python -c 'import numpy; print(numpy.__version__)' # prints 1.26.1 for me
rye add lap
rye sync # fails with ImportError: lap requires numpy, please "pip install numpy".

@JorgeRuizITCL
Copy link

Same error with poetry 1.6.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

13 participants