Recently I started to watch a long training video on YouTube, 9+ hours. I just spent fraction of a few minutes daily as alternative refreshment. During the training period, I tired to use Idle
app to practice some codes. Up to the point of installing third party packages, I could not get import
to work on my Mac. I spent couple of days struggling and finally I figured it out. I think it is worthwhile to take some notes about this experience.
Tool to Install Packages
The first hurdle is that there is no
pip
, a tool to install third party python packages, available in terminal
on Mac. It seems that python is part of Mac OS system, but the version of python is an old version: 2.5 & 2.7. pip
was not installed on my Mac.Eventually I got
pip
installed by using easy_install
tool:After that, I could install
pyperclip
, a package for using clipboard copy and paste features.However, the import of
pyperclip
in python shell and script still does not working!Version Issue
I could not find out any solution from web easily. It seems that all the solutions in the top search list I found from web are old ones, ie for python 2.*. From one place I read a hint about the issue: different versions of python on Mac. It is true that python came with Mac OS is version 2.3, 2.5 & 2.7. The newest version, for the time being, I installed on Mac is python 3.7.Further investigation, I found that the tool of
pip
is actually used to install packages for python 2.7. The pip
is located at the path of:The tool I need to install
pyperclip
is actually pip3
! This one is at the path of:When I sorted it out, it is so easy to install third party packages for python 3.7. For example:
For my interest, I further found out the locations of packages for different versions. For python 2.7, the location of package is at:
- find /Library/Python/ -name pyperclip
- /Library/Python//2.7/site-packages/pyperclip
and for python version 3.7 it is at:
- find /Library/Frameworks/Python.framework/ -name pyperclip
- /Library/Frameworks/Python.framework//Versions/3.7/lib/python3.7/site-packages/pyperclip
Python also in Different Versions!
One more interesting thing I found out is that, on my Mac, the name of python executable also has different ones! For the python came with Mac OS is actually version 2.5, and the executable name is python:
and for the newest version, 3.7 I installed, the name is python3:
From the terminal, the command of python will bring up to version 2.5:
- ...$ python
- Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)
- [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin
- Type "help", "copyright", "credits" or "license" for more information
- >>>
or type option
-h
to get all available options. -V
is for getting python version:- python -h
- ...
- Python 2.5
In order to run python3 from terminal, the
PATH
has to be changed: adding python3's path. This is the result of my updated PATH
:- echo $PATH
- /Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:
The
PATH
is set in the file of .bash_profile
:-
more ~/.bash_profile
- # Setting PATH for Python 3.7
- # The original version is saved in .bash_profile.pysave
- PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}:/Users/dchu/Programming/py"
- export PATH
Even with this change, you have to type the correct python executable name, ie python3, to enter python shell:
- python3
- Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
- [Clang 6.0 (clang-600.0.57)] on darwin
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import pyperclip
- >>>
Finally, I could do
import pyperclip
in python shell and scripts without any errors.
By the way, here are the options to get all the commands, options, and the version for the tool of
pip
or pip3
:
- pip -h
- ...
- pip -V
- pip 18.0 from /Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/pip (python 2.7)
- pip3 -V
- pip 10.0.1 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)
References
- python.org
- Wikipedia: Python(programming language)
- w3school.com: python pip
- Open source: pyperclip (Notice: the installation script should be
pip3
notpip
for python3!)