On 26Jul2016 06:52, Crane Ugly <vostrus...@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 <c...@zip.com.au>
--
https://mail.python.org/mailman/listinfo/python-list