Environment
Description
pip 3 install
hangs
Expected behavior
pip 3 install
works
How to Reproduce
Run the latest Haiku Anyboot image from https://download.haiku-os.org/nightly-images/x86_64 . Then do:
git clone https://github.com/micahflee/onionshare.git
cd onionsharepython3 -m venv venv
pkgman i setuptools_python36 # pkgman i setuptools_python installs for 3.7
pip3 install -r install/requirements.txt
Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))
# stalled here - does not continue or exit
Output
None
According to a Haiku developer, the stalled pip is because pip wants to use hardlinks but Haiku doesn't support those.
Reference:
https://medium.com/@probonopd/my-second-week-with-haiku-lots-of-hidden-gems-and-pleasant-surprises-and-some-issues-7e508f0db987
That may be true, since we use lockfile
which internally may use hardlinks. If that's the case then this may be a duplicate of or related to #3532. Can you please try the following:
pip install --no-cache-dir -r install/requirements.txt
and see if that avoids locking uppip install --verbose -r install/requirements.txt
and after it gets stalled press Ctrl-C (or equivalent), and provide the traceback that is producedFor reference:
https://github.com/haikuports/haikuports/issues/3420
(venv) /Haiku/home/onionshare> pip3.6 install --no-cache-dir -r install/requirements.txt
(...)
Collecting PyQt5==5.12.1 (from -r install/requirements.txt (line 15))
Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))
(hangs forever here)
Ctrl-C, Ctrl-D gives:
Traceback (most recent call last):
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/linklockfile.py", line 31, in acquire
os.link(self.unique_name, self.lock_file)
PermissionError: [Errno -2147483633] Operation not allowed: '/boot/home/config/cache/pip/shredder-5fc8f580.756-6502217927950064930' -> '/boot/home/config/cache/pip/selfcheck.json.lock'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/bin/pip3.6", line 11, in <module>
load_entry_point('pip==9.0.0', 'console_scripts', 'pip3.6')()
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/__init__.py", line 233, in main
return command.main(cmd_args)
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/basecommand.py", line 252, in main
pip_version_check(session)
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/utils/outdated.py", line 138, in pip_version_check
state.save(pypi_version, current_time)
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/utils/outdated.py", line 71, in save
with lockfile.LockFile(self.statefile_path):
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/__init__.py", line 197, in __enter__
self.acquire()
File "/packages/python36-3.6.8-2/.self/lib/python3.6/vendor-packages/pip/_vendor/lockfile/linklockfile.py", line 50, in acquire
time.sleep(timeout is not None and timeout / 10 or 0.1)
KeyboardInterrupt
Cross-reference: https://github.com/haikuports/haikuports/issues/3923
Thanks again for the report! We will track this in #6954.