pyenv+conda 不安装包
pyenv+conda doesn't install packages
我正在尝试使用 conda
安装软件包,但没有任何反应。 conda
没有找到 numpy:
$ python -c "import numpy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
import numpy
ModuleNotFoundError: No module named 'numpy'
但是当我尝试使用 conda
安装 numpy
时,我得到:
$ conda install numpy
Collecting package metadata: done
Solving environment: done
# All requested packages already installed.
而且无论如何也无法强制conda
安装它:
$ conda install --force-reinstall numpy
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: {HOME}/.pyenv/versions/miniconda3-latest
added / updated specs:
- numpy
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
有没有办法让 conda
真正安装软件包?或者我真的必须卸载所有内容并重新安装所有内容吗?或者是否有安装 python(使用 mkl
)的解决方案比 conda
更可怕?
我的环境搭建好了(使用pyenv
),要使用conda
安装:
$ which python
{HOME}/.pyenv/shims/python
例如
$ python -c "import tqdm; print(tqdm.__file__)"
{HOME}/.pyenv/versions/miniconda3-latest/lib/python3.6/site-packages/tqdm/__init__.py
更新的答案:
第二次尝试回答您的问题(我是 pyenv 的新手,但希望这对您有所帮助):
当使用 pyenv 和 miniconda 时,我会激活你的环境(来自你的 post 的 miniconda3-latest),然后应该使用正确的 conda 来安装你的包:
# Activate your environment
pyenv activate miniconda3-latest
# Install numpy, etc.
conda install numpy
# This then works without errors for me:
python -c "import numpy"
# Deactivate your environment when finish if you want
pyenv deactivate
作为一般观察,pyenv 和 conda 似乎在做类似的事情(参见 https://bastibe.de/2017-11-20-pyenv.html)。 pyenv 我还没有探索太多,但如果我正在使用它,我可能会考虑不将它与 conda 配对,而只是依赖原生 python (venv, pip) 安装包,让 pyenv 完成所有工作环境管理(而不是在其上添加 conda)。
原回答:
我认为 conda 没有任何问题,但您输入的命令可能是在您的系统上调用本机 python,而不是 conda。
这些命令会让你看到你调用的是什么路径:
# for linux/mac
which python
# for windows
where python
如果它显示的内容类似于 /usr/bin/python
(对于 linux/mac),那么这不是您正在调用的 python 的 conda 实例。
如果你想调用你已经安装包的实际 conda 实例,你应该找到你的 conda 安装到的位置并使用完整路径调用它:
# taking your example it looks like your python is in
# {HOME}/.pyenv/versions/miniconda3-latest
{HOME}/.pyenv/versions/miniconda3-latest/bin/python -c "import numpy"
# or on my computer it is (~ means home):
~/anaconda3/bin/python -c "import numpy"
希望对您有所帮助!
tl;博士
conda install -f
, conda install --force-reinstall
什么都不做,手动删除缓存,例如rm -rf {CONDA_LOCATION}/pkgs/{PACKAGE_NAME}*
后跟 conda install {PACKAGE_NAME}
.
我终于找到了一个合理的 hack 来强制 conda
安装软件包。 conda
保留一个可以使用 conda info
找到的缓存
$ conda info
...
package cache : {HOME}/.pyenv/versions/miniconda3-latest/pkgs
{HOME}/.conda/pkgs
只需从缓存中删除与要安装的软件包相关的所有内容:
rm -rf {HOME}/.pyenv/versions/miniconda3-latest/pkgs/numpy*
(考虑在执行此类激进步骤之前进行备份)。之后conda
就可以正常安装包了:
$ conda install numpy
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: {HOME}.pyenv/versions/miniconda3-latest
added / updated specs:
- numpy
The following packages will be downloaded:
package | build
---------------------------|-----------------
numpy-base-1.15.4 | py36_2 6.1 MB intel
------------------------------------------------------------
Total: 6.1 MB
The following NEW packages will be INSTALLED:
numpy-base intel/linux-64::numpy-base-1.15.4-py36_2
Proceed ([y]/n)? y
Downloading and Extracting Packages
numpy-base-1.15.4 | 6.1 MB | ################################################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
我正在尝试使用 conda
安装软件包,但没有任何反应。 conda
没有找到 numpy:
$ python -c "import numpy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
import numpy
ModuleNotFoundError: No module named 'numpy'
但是当我尝试使用 conda
安装 numpy
时,我得到:
$ conda install numpy
Collecting package metadata: done
Solving environment: done
# All requested packages already installed.
而且无论如何也无法强制conda
安装它:
$ conda install --force-reinstall numpy
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: {HOME}/.pyenv/versions/miniconda3-latest
added / updated specs:
- numpy
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
有没有办法让 conda
真正安装软件包?或者我真的必须卸载所有内容并重新安装所有内容吗?或者是否有安装 python(使用 mkl
)的解决方案比 conda
更可怕?
我的环境搭建好了(使用pyenv
),要使用conda
安装:
$ which python
{HOME}/.pyenv/shims/python
例如
$ python -c "import tqdm; print(tqdm.__file__)"
{HOME}/.pyenv/versions/miniconda3-latest/lib/python3.6/site-packages/tqdm/__init__.py
更新的答案:
第二次尝试回答您的问题(我是 pyenv 的新手,但希望这对您有所帮助):
当使用 pyenv 和 miniconda 时,我会激活你的环境(来自你的 post 的 miniconda3-latest),然后应该使用正确的 conda 来安装你的包:
# Activate your environment
pyenv activate miniconda3-latest
# Install numpy, etc.
conda install numpy
# This then works without errors for me:
python -c "import numpy"
# Deactivate your environment when finish if you want
pyenv deactivate
作为一般观察,pyenv 和 conda 似乎在做类似的事情(参见 https://bastibe.de/2017-11-20-pyenv.html)。 pyenv 我还没有探索太多,但如果我正在使用它,我可能会考虑不将它与 conda 配对,而只是依赖原生 python (venv, pip) 安装包,让 pyenv 完成所有工作环境管理(而不是在其上添加 conda)。
原回答:
我认为 conda 没有任何问题,但您输入的命令可能是在您的系统上调用本机 python,而不是 conda。
这些命令会让你看到你调用的是什么路径:
# for linux/mac
which python
# for windows
where python
如果它显示的内容类似于 /usr/bin/python
(对于 linux/mac),那么这不是您正在调用的 python 的 conda 实例。
如果你想调用你已经安装包的实际 conda 实例,你应该找到你的 conda 安装到的位置并使用完整路径调用它:
# taking your example it looks like your python is in
# {HOME}/.pyenv/versions/miniconda3-latest
{HOME}/.pyenv/versions/miniconda3-latest/bin/python -c "import numpy"
# or on my computer it is (~ means home):
~/anaconda3/bin/python -c "import numpy"
希望对您有所帮助!
tl;博士
conda install -f
, conda install --force-reinstall
什么都不做,手动删除缓存,例如rm -rf {CONDA_LOCATION}/pkgs/{PACKAGE_NAME}*
后跟 conda install {PACKAGE_NAME}
.
我终于找到了一个合理的 hack 来强制 conda
安装软件包。 conda
保留一个可以使用 conda info
$ conda info
...
package cache : {HOME}/.pyenv/versions/miniconda3-latest/pkgs
{HOME}/.conda/pkgs
只需从缓存中删除与要安装的软件包相关的所有内容:
rm -rf {HOME}/.pyenv/versions/miniconda3-latest/pkgs/numpy*
(考虑在执行此类激进步骤之前进行备份)。之后conda
就可以正常安装包了:
$ conda install numpy
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: {HOME}.pyenv/versions/miniconda3-latest
added / updated specs:
- numpy
The following packages will be downloaded:
package | build
---------------------------|-----------------
numpy-base-1.15.4 | py36_2 6.1 MB intel
------------------------------------------------------------
Total: 6.1 MB
The following NEW packages will be INSTALLED:
numpy-base intel/linux-64::numpy-base-1.15.4-py36_2
Proceed ([y]/n)? y
Downloading and Extracting Packages
numpy-base-1.15.4 | 6.1 MB | ################################################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done