我无法使用import random
Info1=("Shotgun")
Info2=("God's Plan")
Info3=("This is me")
Info4=("Solo")
Info5=("Psyco")
Array=[Info1, Info2, Info3, Info4, Info5]
RanVar=random.choice(Array)
print(RanVar[0]+'?'*(len(RanVar)-1))
安装pip,我认为我的python安装通常有点愚蠢。
我希望能够在用户不使用sudo的情况下使用pip(在这种情况下为python setup.py --user
)。我读过的所有内容都表明上述内容应该可以工作,但它只是拒绝。
如果我使用vagrant
,则它可以正确安装,但是同样,由于安装到用户目录,因此不需要sudo。
sudo python setup.py --user
其他信息...
python setup.py --user
Traceback (most recent call last):
File "setup.py", line 6, in <module>
from setuptools import find_packages, setup
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 16, in <module>
import setuptools.version
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/version.py", line 1, in <module>
import pkg_resources
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
@_call_aside
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
f(*args, **kwargs)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 572, in _build_master
ws = cls()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in __init__
self.add_entry(entry)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 621, in add_entry
for dist in find_distributions(entry, True):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1968, in find_on_path
for dist in factory(fullpath):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2030, in distributions_from_metadata
if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/websocket_client-0.54.0.dist-info'
此外,我知道我可以使用venv实现我想要的功能,但要点是它应该可以工作,并且不可以,这a)使我无休止,b)表示某些事情很简单我的设置有误。
答案 0 :(得分:0)
在我看来,您似乎正在尝试使用非root用户将内容安装到系统Python中,因此没有权限编辑系统站点包中的内容。请您可以运行whoami
并查看以哪个用户身份登录,如果您以root以外的身份登录,则应使用sudo将软件包安装到系统的Python中,例如sudo pip install my_package
。
如果您不想将软件包安装到系统的Python site-packages目录中,那么您可能应该在virtualenv中进行操作,这将为您的项目提供一个自包含的Python env,并且可以在其家中以任何用户身份创建目录。
要安装virtualenv:
sudo pip install virtualenv
然后以用户身份创建一个新的virtualenv:
virtualenv my_env
假设/激活virtualenv:
source my_env/bin/activate
现在,您可以使用pip作为用户将软件包安装到Python virtualenv中:
pip install my_package
这为您提供了一个完全独立的Python env,以您的用户身份从系统Python安装中运行。希望这对您有帮助,如果我误解了您的用例,请发表评论,并相应地更新答案。