为什么 python 使用 3.8.1 和 3.9,然后无法安装包(错误:包 pkg 需要不同的 Python:3.8.1 不在 '>=3.9.0' 中)?

2022-01-10 00:00:00 python python-3.x conda pip anaconda

问题描述

我正在尝试测试 我的 Ultimate-utils 库的安装,我得到了这个奇怪的错误:

I was trying to test the installation of my ultimate-utils library and I get this bizzare error:

(meta_learning) brandomiranda~/ultimate-utils ❯ pip install -e .
Obtaining file:///Users/brandomiranda/ultimate-utils
  Preparing metadata (setup.py) ... done
Collecting dill
  Using cached dill-0.3.4-py2.py3-none-any.whl (86 kB)
Collecting networkx>=2.5
  Using cached networkx-2.6.3-py3-none-any.whl (1.9 MB)
Requirement already satisfied: scipy in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (1.7.3)
Collecting scikit-learn
  Using cached scikit_learn-1.0.1-cp38-cp38-macosx_10_13_x86_64.whl (7.9 MB)
Collecting lark-parser
  Using cached lark_parser-0.12.0-py2.py3-none-any.whl (103 kB)
Collecting torchtext==0.10.1
  Using cached torchtext-0.10.1-cp38-cp38-macosx_10_9_x86_64.whl (1.6 MB)
Collecting tensorboard
  Using cached tensorboard-2.7.0-py3-none-any.whl (5.8 MB)
Collecting pandas
  Using cached pandas-1.3.4-cp38-cp38-macosx_10_9_x86_64.whl (11.4 MB)
Collecting progressbar2
  Using cached progressbar2-3.55.0-py2.py3-none-any.whl (26 kB)
Collecting transformers
  Using cached transformers-4.13.0-py3-none-any.whl (3.3 MB)
Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (2.26.0)
Collecting aiohttp
  Using cached aiohttp-3.8.1-cp38-cp38-macosx_10_9_x86_64.whl (574 kB)
Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (1.21.4)
Collecting plotly
  Using cached plotly-5.4.0-py2.py3-none-any.whl (25.3 MB)
Collecting wandb
  Using cached wandb-0.12.7-py2.py3-none-any.whl (1.7 MB)
Collecting matplotlib
  Using cached matplotlib-3.5.0-cp38-cp38-macosx_10_9_x86_64.whl (7.3 MB)
Requirement already satisfied: torch<1.10.0,>=1.4.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (1.9.1)
Requirement already satisfied: torchvision<0.11.0,>=0.5.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (0.10.1)
Requirement already satisfied: torchaudio<0.10.0,>=0.9.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (0.9.1)
ERROR: Package 'ultimate-utils' requires a different Python: 3.8.1 not in '>=3.9.0'

但是,如果您检查依赖项似乎已正确安装 - 所以我很困惑这条消息的含义.

however, if you check the dependencies seem to have installed correctly - so I am puzzled what this message means.

此外,如果您更仔细地阅读该消息,您还会看到它出于某种原因引用了 3.8(python 3.8?不确定),请参阅:

In addition if you read the message more carefully you also see that it references 3.8 for some reason (python 3.8? not sure), see:

Requirement already satisfied: torch<1.10.0,>=1.4.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (1.9.1)
Requirement already satisfied: torchvision<0.11.0,>=0.5.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (0.10.1)
Requirement already satisfied: torchaudio<0.10.0,>=0.9.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from ultimate-utils==0.5.3) (0.9.1)
ERROR: Package 'ultimate-utils' requires a different Python: 3.8.1 not in '>=3.9.0'

但如果我要求 pythons 版本,它是我期望的 3.9:

but if I ask for pythons version its the one I expected 3.9:

(meta_learning) brandomiranda~/ultimate-utils ❯ python
Python 3.9.7 (default, Sep 16 2021, 08:50:36)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

所以我很困惑到底发生了什么.我想知道pycharm是否与此有关.但是为什么说它没有安装我的 uutils 库呢?

So I am very puzzled what is going on. I wonder if pycharm has anything to do with this. But why is it saying it did not install my uutils library?

检查点子列表确认它不存在:

and checking the pip list confirms its not there:

(meta_learning) brandomiranda~/ultimate-utils ❯ pip list
Package                Version
---------------------- ---------
argcomplete            1.12.3
astroid                2.3.3
boto                   2.49.0
certifi                2021.10.8
cffi                   1.15.0
charset-normalizer     2.0.9
cloudpickle            2.0.0
crcmod                 1.7
cryptography           36.0.0
fasteners              0.16.3
gcs-oauth2-boto-plugin 3.0
google-apitools        0.5.32
google-reauth          0.1.1
gsutil                 5.5
gym                    0.21.0
httplib2               0.20.2
idna                   3.3
isort                  4.3.21
lazy-object-proxy      1.4.3
learn2learn            0.1.6
mccabe                 0.6.1
monotonic              1.6
nodejs                 0.1.1
numpy                  1.21.4
oauth2client           4.1.3
optional-django        0.1.0
Pillow                 8.4.0
pip                    21.3.1
pyasn1                 0.4.8
pyasn1-modules         0.2.8
pycparser              2.21
pylint                 2.4.4
pyOpenSSL              21.0.0
pyparsing              3.0.6
pyu2f                  0.1.5
qpth                   0.0.15
requests               2.26.0
retry-decorator        1.1.1
rsa                    4.7.2
scipy                  1.7.3
setuptools             41.2.0
six                    1.14.0
torch                  1.9.1
torchaudio             0.9.1
torchvision            0.10.1
tqdm                   4.62.3
typing_extensions      4.0.1
urllib3                1.26.7
wrapt                  1.11.2

从 uutils 运行导入确认它没有安装:

running an import from uutils confirms it was not installed:

(meta_learning) brandomiranda~/ultimate-utils ❯ python -c "import uutils; uutils.hello()"
python -c "import uutils; uutils.torch_uu.hello()"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'uutils'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'uutils'

奇怪的是,这在 python 3.9 之前已经有效.所以有些东西改变了,我不知道是什么.

what is bizzare is that this has worked before in python 3.9. So something changed and I can't figure out what.

这一定是python路径问题,因为现在它在删除python 3.8(我从未安装过......)后打开了2.7.我认为 conda init 没有正确启动我的 shell.在哪里:

it must be a python path issue since now it's opening 2.7 after deleting python 3.8 (which I never installed...). I think conda init is not initiating my shell correctly. Where is:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/brandomiranda/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/brandomiranda/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/brandomiranda/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/brandomiranda/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

假设进入.zshrc文件?

参考/相关链接:

  • 无法安装新的适用于 Python 的软件包(Python 3.9.0、Windows 10)
  • 为什么 Pip 声称 Python 的版本不在给定范围内?
  • 如何是否从 setup.py install_requires 列表中安装 PyTorch 和相关工具?
  • https://github.com/brando90/ultimate-utils
  • Python OSX $ 其中 Python 提供/库/Frameworks/Python.framework/Versions/2.7/bin/python
  • 为什么 conda init 更新我的 .bash_profile 不正确?
  • 如何从 macOS 完全卸载 Anaconda
  • https://superuser.com/questions/121870/how-do-i-reset-the-path-variable-on-mac-os-x
  • https://github.com/brando90/.dotfiles/blob/master/README.md

解决方案

一旦我开始使用python 3.9(而不是3.10,可能使用最新版本的python 是一个坏主意,所以我学会了只落后大多数软件版本以避免奇怪的错误)然后我确保我的 mac 的新默认 shell zsh 有一个全新的原始路径:

Once I started using python 3.9 (and not 3.10, probably using the most recent version of python is a bad idea, so I learned to be just 1 behind most version of software to avoid weird bugs) and then I made sure my mac's new default shell zsh has a brand new virgin path:

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

在它的顶部.

# In my 2013 mac this seems to be needed
PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# let zplug manage itself
zplug "zplug/zplug"

## Plugins for zsh

# new `jump`
zplug "plugins/wd", from:oh-my-zsh

## prompt
## to test do: print -P '%B%F{red}co%F{green}lo%F{blue}rs%f%b'
# ref: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Prompt-Expansion
# ref: reference: https://wiki.archlinux.org/index.php/Zsh#Colors
# ref: https://scriptingosx.com/2019/07/moving-to-zsh-06-customizing-the-zsh-prompt/
# %F{color} sets colour until next color of %f, %B infront of that changes tone

PROMPT="%B%F{magenta}%n%B%F{red}%~%B%F{green} %F{cyan}❯%f "


## jump TODO: switch to zsh's wd

#conda activate metalearning
# conda activate synthesis
conda activate meta_learning

## Aliases
alias grep='grep --color=auto'
alias intel='ssh -i ~/.ssh/intel_id_rsa miranda9@ssh-iam.intel-research.net'
alias hal='ssh miranda9@hal.ncsa.illinois.edu'
alias vision='ssh miranda9@vision-submit.cs.illinois.edu'
alias nano='ssh miranda9@nano.ncsa.illinois.edu'
alias dgx='ssh miranda9@hal-dgx.ncsa.illinois.edu'
alias sshcc='ssh miranda9@cc-login.campuscluster.illinois.edu'

#alias tb='tensorboard --logdir'
alias tbb='sh /Users/brando/ultimate-utils/run_tb.sh'

export WANDB_API_KEY=MY SCRETE MUAHAHAHA

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/brandomiranda/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/brandomiranda/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/brandomiranda/opt/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/brandomiranda/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

我还重新安装了 python,删除了 python 框架 3.8 并重新安装了 conda 作为图形界面,但我不认为这些是让事情起作用的东西.我相当有信心这是正确的.

I also reinstalled python, removed python framework 3.8 and reinstalled conda as a graphical interface but I don't think these were the things that made things work. I am fairly confident that is right.

相关文章