I’ve started to use my Mac to install Python packages in the same way I do with my Windows PC at work; however on my Mac I’ve come across frequent permission denied errors while writing to log files or site-packages.
Therefore I thought about running
pip install <package> under
sudo but is that a safe/acceptable use of sudo considering I’m just wanting this to be installed under my current user account?
Example traceback from a logfile I/O error:
Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/tq/hy1fz_4j27v6rstzzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt failed with error code 1 in /Users/markwalker/build/pycrypto Storing complete log in /Users/markwalker/Library/Logs/pip.log Traceback (most recent call last): File "/usr/local/bin/pip", line 8, in <module> load_entry_point('pip==1.1', 'console_scripts', 'pip')() File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main return command.main(args[1:], options) File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main log_fp = open_logfile(log_fn, 'w') File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile log_fp = open(filename, mode) IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'
This was likely down to permissions, however the best approach is to use virtual environments for your python projects. Running
sudo pip should be avoided unless absolutely necessary.