Closed bgyori closed 3 years ago
Huh, it is working for me. There must be some additional configuration that causing the mismatch.
user@machine:~$ pip uninstall kappy
Found existing installation: kappy 4.1.2
Uninstalling kappy-4.1.2:
Would remove:
/home/user/.local/lib/python3.9/site-packages/kappy-4.1.2.dist-info/*
/home/user/.local/lib/python3.9/site-packages/kappy/*
Proceed (y/n)? y
Successfully uninstalled kappy-4.1.2
user@machine:~$ pip install kappy
Defaulting to user installation because normal site-packages is not writeable
Collecting kappy
Using cached kappy-4.1.2-cp39-cp39-manylinux2010_x86_64.whl (12.3 MB)
Requirement already satisfied: nose in ./.local/lib/python3.9/site-packages (from kappy) (1.3.7)
Requirement already satisfied: future in ./.local/lib/python3.9/site-packages (from kappy) (0.18.2)
Requirement already satisfied: requests in ./.local/lib/python3.9/site-packages (from kappy) (2.25.1)
Requirement already satisfied: idna<3,>=2.5 in ./.local/lib/python3.9/site-packages (from requests->kappy) (2.10)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.local/lib/python3.9/site-packages (from requests->kappy) (1.26.2)
Requirement already satisfied: certifi>=2017.4.17 in ./.local/lib/python3.9/site-packages (from requests->kappy) (2020.12.5)
Requirement already satisfied: chardet<5,>=3.0.2 in ./.local/lib/python3.9/site-packages (from requests->kappy) (4.0.0)
Installing collected packages: kappy
Successfully installed kappy-4.1.2
user@machine:~$ python3
Python 3.9.0 (default, Dec 3 2020, 20:15:33)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kappy
>>> kappy.KappaStd()
<kappy.kappa_std.KappaStd object at 0x7f07d745e730>
>>>
I checked and it works on Linux (which I think you're using above) for me as well. So the issue seems to be specific to Mac and I think it has something to do with the custom function to copy the binaries into the installation folder in setup.py, but I haven't yet figured out what it is.
Okay, I think the issue is just that a specific wheel isn't available for Python 3.9/MacOS X on PyPI for version 4.1.2 (see https://pypi.org/project/kappy/#files): there are versions for Python 2.7, 3.6, 3.7, and 3.8. So pip install
builds the package from source and fails to include the binaries. One solution would be just to package and upload a Python 3.9 release to PyPI by someone who has the permissions to do so.
As far as I can tell just downloading https://files.pythonhosted.org/packages/d6/9b/94da0b91341c94cd5288e243e356aff3b27e697829e4b930babf3e5a6128/kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl, renaming the file to kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
and then uploading it to PyPI would be sufficient to resolve this. Could one of the maintainers help with that? Thanks!
I'm using WSL2, so yeah, the Linux version within the virtual machine.
From PEP 427, I take it that the cp38
tag means that build was for the CPython 3.8 version. I'm hesitant to just upload the same file as 3.9 compatible, if it was built for an earlier version.
If the problem is Kappy failing to compile under Mac, shouldn't we tackle that directly? @pirbo
Is there output that can hint at what's broken? I don't have a Mac environment available, so I can't reproduce...
Actually, the kappy package consists of two parts: compiled binaries (KaSim, KaSa, etc.) that are platfrom-dependent but not Python-dependent, and python code which is platform independent. However, if the uploaded wheel files are explicit about a given Python version, as in kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl
for Python 3.8, pip simply doesn't find it as a potential installable when doing pip install kappy
on Python 3.9. Since nothing in the wheel is otherwise dependent on the Python version, it is sufficient to create a copy of the file with cp39 in the file name to make it work with Python 3.9.
I wasn't explicit earlier but I'm not just guessing that this would work but have actually tried it before suggesting it. See this log:
(py39) ~/tmp $ wget https://files.pythonhosted.org/packages/d6/9b/94da0b91341c94cd5288e243e356aff3b27e697829e4b930babf3e5a6128/kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl
...
(py39) ~/tmp $ pip install kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl
ERROR: kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl is not a supported wheel on this platform.
(py39) ~/tmp $ mv kappy-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
(py39) ~/tmp $ pip install kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
Processing ./kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
...
Installing collected packages: kappy
Successfully installed kappy-4.1.2
(py39) ~/tmp $ ipython
Python 3.9.0 (default, Oct 27 2020, 14:13:35)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import kappy
In [2]: kappy.KappaStd()
Out[2]: <kappy.kappa_std.KappaStd at 0x1039b1820>
First, Sorry I'm reacting this late!
Sadly, your trick does not work:
$ twine upload kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
Enter your username: pirbo
Enter your password:
Uploading distributions to https://upload.pypi.org/legacy/
Uploading kappy-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7.64M/7.64M [00:05<00:00, 1.53MB/s]
NOTE: Try --verbose to see response content.
HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for more information. for url: https://upload.pypi.org/legacy/
and if you follow the link, you see that A file with the exact same content exists
is indeed a forbidden case...
I really to find a Mac to regenerate the package for 3.9 apparently. Sorry about that!
I found a mac to steal :-) It should work now (reopen of course if I messed up)
Thanks for looking into that!
Trying to migrate to the latest Kappy release (4.1.2), I am running into an issue with the installation. In a clean virtual environment on Mac with Python 3.9, I am doing
pip install kappy
and once installed, I getIt looks like it is looking for an executable in
site-packages/bin/KappaSwitchman
instead ofsite-packages/kappy/bin/KappaSwitchman
which is what would make sense in this case. In fact, it looks like the installation itself is problematic since there is nobin
folder insite-packages/kappy
. I haven't yet tried this on other platforms or other Python versions so not sure if it's specific to this one or a more general issue.