Python setup.py安装正在运行egg_info错误:[Errno 13]权限被拒绝,无法访问安装目录

Python setup.py安装正在运行egg_info错误:[Errno 13]权限被拒绝,无法访问安装目录,python,python-3.x,pip,setup.py,Python,Python 3.x,Pip,Setup.py,我遇到了setup.py的一个类似bug的功能,在这里,无论我想在没有root权限的情况下将软件包安装到哪里,我都会遇到权限被拒绝的错误 我有一个带有一些小文件的玩具python包,构建它没有问题。setup.py文件中没有任何特殊内容。我将列出其中的一两个 setup ( name='pmsi', entry_points={ 'console_scripts': [ 'pmsi = pmsi.pmsi:main', ] }, ) sudo python3 setup.py i

我遇到了setup.py的一个类似bug的功能,在这里,无论我想在没有root权限的情况下将软件包安装到哪里,我都会遇到权限被拒绝的错误

我有一个带有一些小文件的玩具python包,构建它没有问题。setup.py文件中没有任何特殊内容。我将列出其中的一两个

setup (
   name='pmsi',
   entry_points={ 'console_scripts': [ 'pmsi = pmsi.pmsi:main', ] },
)


sudo python3 setup.py install 
一点问题也没有给我。我需要将这个软件包安装到一个特定的地方,并尝试了--user,-home,-prefix选项;在“鸡蛋信息”步骤中,所有人都给了我相同的错误消息

python3 setup.py install --user
running install
running bdist_egg
running egg_info
error: [Errno 13] Permission denied

似乎安装过程总是试图将egg_信息复制到某个我没有写入权限的系统位置。我不是setup.py方面的专家,必须有一些默认规则,我可以在命令行或setup.py上覆盖这些规则。或者我应该始终以root用户身份安装到system place(这似乎是一个错误的选择,如果您想在系统安装之前进行测试该怎么办)

造成这种特殊困难的原因是,我以前在包目录中运行sudo,它创建了root拥有的一些目录。之后,我以普通用户的身份运行,并遇到了权限问题。解决办法是所有权变更

cd ~/lib/python3.8/site-packages
sudo chown -R myuid:mygroup *

采取上述措施后,问题得到解决。实际的python lib dir可能会因不同的情况而有所不同。

造成这种特殊困难的原因是我以前在包目录中运行过sudo,它创建了root拥有的一些目录。之后,我以普通用户的身份运行,并遇到了权限问题。解决办法是所有权变更

cd ~/lib/python3.8/site-packages
sudo chown -R myuid:mygroup *

采取上述措施后,问题得到解决。实际的python库目录可能会因不同的情况而有所不同。

现在就知道了。因为我以前在包目录中运行sudo,它创建了一个所有者为root的目录。然后我作为普通用户运行,我得到了权限问题。在sudo chown-R myuid:myuse*之后,问题得到了解决。我在错误的方向思考了将近一个小时。您也可以使用
--prefix
在特定目录中安装模块(例如
python3 setup.py install--prefix=/path/to/install
)。感谢您指出前缀选项。我也做过实验。我被自己的错误误导了。大多数时候,程序员的问题不是由我们所想的东西引起的。我仔细阅读setup.py文档长达一个多小时。有点像买票去交通学校。一些惩罚和一点好处。@KeminZhou您在哪个目录下运行了
sudo chown-R myuid:myuse*
?@CameronHudson类似于:~/lib/python3.8/site-packages。您可以始终尝试使用find:find$HOME“您的代码文件名”查找包,现在您已经找到了。因为我以前在包目录中运行sudo,它创建了一个所有者为root的目录。然后我作为普通用户运行,我得到了权限问题。在sudo chown-R myuid:myuse*之后,问题得到了解决。我在错误的方向思考了将近一个小时。您也可以使用
--prefix
在特定目录中安装模块(例如
python3 setup.py install--prefix=/path/to/install
)。感谢您指出前缀选项。我也做过实验。我被自己的错误误导了。大多数时候,程序员的问题不是由我们所想的东西引起的。我仔细阅读setup.py文档长达一个多小时。有点像买票去交通学校。一些惩罚和一点好处。@KeminZhou您在哪个目录下运行了
sudo chown-R myuid:myuse*
?@CameronHudson类似于:~/lib/python3.8/site-packages。您始终可以尝试使用find:find$HOME“您的代码文件名”查找包