在研究setuptools时,执行python setup.py install,遇到不能创建文件夹的权限报错,完整的错误日志如下:
~ python setup.py install
running install
error: can't create or remove files in install directory
The following error occurred while trying to add or remove files in the
installation directory:
[Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-19811.write-test'
The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
/Library/Python/2.7/site-packages/
Perhaps your account does not have write access to this directory? If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account. If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.
For information on other options, you may wish to consult the
documentation at:
https://setuptools.readthedocs.io/en/latest/easy_install.html
Please make the appropriate changes for your system and try again.
报错日志也可以看到,是由于权限问题,那么(mac或linux上)只需要加上sudo提权即可
sudo python setup.py install
执行就能正常执行install命令
running install
running bdist_egg
running egg_info
creating Hello.egg-info
writing Hello.egg-info/PKG-INFO
writing top-level names to Hello.egg-info/top_level.txt
writing dependency_links to Hello.egg-info/dependency_links.txt
writing manifest file 'Hello.egg-info/SOURCES.txt'
reading manifest file 'Hello.egg-info/SOURCES.txt'
writing manifest file 'Hello.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.15-x86_64/egg
running install_lib
running build_py
creating build/bdist.macosx-10.15-x86_64
creating build/bdist.macosx-10.15-x86_64/egg
copying build/lib/hello.py -> build/bdist.macosx-10.15-x86_64/egg
byte-compiling build/bdist.macosx-10.15-x86_64/egg/hello.py to hello.pyc
creating build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying Hello.egg-info/PKG-INFO -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying Hello.egg-info/SOURCES.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying Hello.egg-info/dependency_links.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying Hello.egg-info/top_level.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/Hello-1.0-py2.7.egg' and adding 'build/bdist.macosx-10.15-x86_64/egg' to it
removing 'build/bdist.macosx-10.15-x86_64/egg' (and everything under it)
Processing Hello-1.0-py2.7.egg
Copying Hello-1.0-py2.7.egg to /Library/Python/2.7/site-packages
Adding Hello 1.0 to easy-install.pth file
在windows上,需要使用管理员权限打开cmd窗口,然后执行命令就可以了。