首页 > 解决方案 > 为什么 pip 无法在 sys.path 中发现我的包?

问题描述

我有一个 python 环境,其中 sys.path 配置为指向多个位置:

$ python
Python 3.7.4 (default, Aug 13 2019, 20:35:49) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> sys.path
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined
>>> import sys
>>> sys.path
['', '/home/shared/conda3/lib/python37.zip', '/home/shared/conda3/lib/python3.7', '/home/shared/conda3/lib/python3.7/lib-dynload', '/home/shared/venv/torch-cv/lib/python3.7/site-packages', '/home/shared/conda3/lib/python3.7/site-packages']

包“火炬”安装在其中之一下:

>>> import torch
>>> torch.zeros(2,3)
tensor([[0., 0., 0.],
        [0., 0., 0.]])
>>> print(torch.__file__)
/home/shared/venv/torch-cv/lib/python3.7/site-packages/torch/__init__.py


但是,似乎 pip 无法发现它:

$ pip list | grep torch
$ pip uninstall torch
WARNING: Skipping torch as it is not installed.

是什么原因,我应该如何解决?

pip 的安装也在 sys.path 中,但与torch包相比位于不同的目录中:

$ which pip
/home/shared/conda3/bin/pip

标签: pythonpython-3.xpippythonpath

解决方案


推荐阅读