On 11Jun2018 22:51, Tamara Berger <brg...@gmail.com> wrote:
On Monday, June 11, 2018 at 7:24:58 PM UTC-4, Gregory Ewing wrote:
Tamara Berger wrote:
> I typed these 2 lines in the terminal:
> 192:~ TamaraB$ sudo python3
>>>>python3 -m pip install pytest
You need to enter this *single* line in the Terminal:
sudo python3 -m pip install pytest
> What does the "-m" stand for in the line of code?
It's a cmmand-line option to the python interpreter
telling it to execute a module.
Thanks, Greg. But I got a permission error. Here is my command at the prompt
and the terminal's response.
192:~ TamaraB$ sudo python3 -m pip install pytest
Password:
The directory '/Users/TamaraB/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.
sudo leaves the $HOME environment variable unchanged, at least on my Mac. So it
is using your personal cache directory. And rejecting it becuse it is
(correctly) owned by you.
The directory '/Users/TamaraB/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.
Have a look at the sudo command's manual page, by running the command:
man sudo
In that we can read this:
-H The -H (HOME) option option sets the HOME environment
variable to the home directory of the target user (root by
default) as specified by the password database. The
default handling of the HOME environment variable depends
on sudoers(5) settings. By default, sudo will set HOME if
env_reset or always_set_home are set, or if set_home is
set and the -s option is specified on the command line.
So the message is a reasonable suggestion, and it is suggesting that you run
this command:
sudo -H python3 -m pip install pytest
Regarding the other messages:
Requirement already satisfied: pytest in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Requirement already satisfied: setuptools in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
Requirement already satisfied: pluggy<0.7,>=0.5 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from
pytest)
Requirement already satisfied: atomicwrites>=1.0 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
Requirement already satisfied: more-itertools>=4.0.0 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
Requirement already satisfied: six>=1.10.0 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
Requirement already satisfied: py>=1.5.0 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
Requirement already satisfied: attrs>=17.4.0 in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
(from pytest)
This is all fine - it is just saying that various prerequisites are already
there.
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
This is just a suggestion to upgrade pip. Since you're running pip from
Python's "pip" builtin module this effectively suggests upgrading your Python 3
install. Not important or urgent.
So I'm stuck again. I thought "sudo" was supposed to take care of permissions.
Do you have a suggestion?
Sudo isn't magic, and treating it like magic is very common, which is one
reason I discourage unthinking use of it.
Sudo exists to let your run specific commands as root, the system superuser.
(It also has modes to run as other users, but root is the default and also the
most dangerous.)
When you use sudo you have almost unlimited power to change things. This is
handy for installation activities, and also handy for doing unbound damage to
the OS install.
I still recommend that you avoid sudo here and use pip's --user option,
installing the packages in your personal Python tree. It will work just as well
for almost every purpose and avoid risk to your machine's OS.
Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list