Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #111919

Re: Python environment on mac

From Cameron Simpson <cs@zip.com.au>
Newsgroups comp.lang.python
Subject Re: Python environment on mac
Date 2016-07-27 10:58 +1000
Message-ID <mailman.3.1469582490.10276.python-list@python.org> (permalink)
References <950a22b5-6b34-4f99-8312-94972cb372da@googlegroups.com> <20160727005828.GA99643@cskk.homeip.net>

Show all headers | View raw


On 26Jul2016 06:52, Crane Ugly <vostrushka@gmail.com> wrote:
>Mac OS X comes with its own version of python and structure to support it.
>So far it was good enough for me. Then I started to use modules that distributed through MacPorts and this is where I get lost.
>I do not quite understand how Python environment is set. Or how to set it in a way of using, say MacPorts distribution alone.
>For example: standard location for pip utility is /usr/local/bin/pip. MacPorts structure has it too but as a link
>lrwxr-xr-x 1 root admin 67 May 23 22:32 /opt/local/bin/pip-2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
>Which means that the standard utility will be used.

No, I think that means it uses the MacPorts one. Note: /opt/local vs 
/usr/local.

>The things is that depending on a way I run pip I get different results:
>$ pip list|grep pep8
>pep8 (1.7.0)
>$ sudo pip list|grep pep8
>$
>pep8 was installed through macports.
>In second case pip is using stripped environment and pointing to standard Mac OS Python repository.
>But in a way to install anything with pip I have to use sudo.
>In my profile I have variable PYTHONPATH:
>PYTHONPATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
>It is pointing to macports structure. But when I use sudo (in case of using pip) it get stripped.
>How to setup and maintain python environment in a trustful way? So it is clear 
>where all installed modules are?

My personal habit is to use virtualenv. You could build a virtualenv based of 
the system Python or the MacPorts one (or make one of each). Then you can use 
pip (as yourself, no sudo - avoid that if possible) from the appropriate 
environment to install into that environment. Complete separation, and complete 
control for you.

The executables inside a virtualenv ("python", "pip" etc) are stubs that adjust 
PYTHONPATH etc themselves and then invoke the python one which that particular 
virtualenv was based. This means that by executing that _specific_ executable 
you automatically and correctly use that specific virtualenv. Without having to 
hand maintain your own $PYTHONPATH, and therefore with needing to adjust it 
depending which setup you want to use.

Cheers,
Cameron Simpson <cs@zip.com.au>

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Python environment on mac Crane Ugly <vostrushka@gmail.com> - 2016-07-26 06:52 -0700
  Re: Python environment on mac CFK <cfkaran2@gmail.com> - 2016-07-26 11:38 -0400
  Re: Python environment on mac Cameron Simpson <cs@zip.com.au> - 2016-07-27 10:58 +1000
    Re: Python environment on mac Crane Ugly <vostrushka@gmail.com> - 2016-07-27 06:09 -0700

csiph-web