econchick / new-coder

New Coder tutorials
zlib License
597 stars 392 forks source link

The directory or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. #215

Open bryanbeshore opened 7 years ago

bryanbeshore commented 7 years ago

I am receiving the following message when trying to install virtualenv via: sudo pip install virtualenv

Bryans-MacBook-Pro:/ BryanB$ sudo pip install virtualenv
The directory '/Users/BryanB/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/BryanB/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

Tried sudo -H pip install virtualenv

Result Requirement already satisfied: virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

I am unsure how to resolve this issue.

merwok commented 7 years ago

Is it an issue? Virtualenv is installed in your framework Python site-packages directory. If your $PATH contains the bin directory of that installation, you should be able to run the virtualenv command now.

bryanbeshore commented 7 years ago

When trying to run $ mkvirtualenv TestEnv

Result -bash: mkvirtualenv: command not found

Per this tutorial: http://newcoder.io/begin/setup-your-machine/, my response should be something like:

$ mkvirtualenv TestEnv
Installing
distribute..........................................
....................................................
....................................................
...............................done.
virtualenvwrapper.user_scripts Creating /Users/lynnroot/Envs/TestEnv/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/lynnroot/Envs/TestEnv/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/lynnroot/Envs/TestEnv/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/lynnroot/Envs/TestEnv/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/lynnroot/Envs/TestEnv/bin/get_env_details

And should have a virtual environment called TestEnv, which I should see (TestEnv) before your prompt:

(TestEnv) $

But, obviously I am not... Not sure why. First time doing much of anything with Python. Would like to test out writing scrapers

Thanks

merwok commented 7 years ago

mkvirtualenv is a command provided by virtualenvwrapper, a set of helpers built on top of virtualenv. Either run pip install virtualenvwrapper (no need for sudo), or use “bare” virtualenv commands instead of mkvirtualenv.

dhruvhacks commented 6 years ago

This happens when someone installs a package via pip using sudo in a virtualenv. You can update the permissions by using following commands as referred in link-

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip