mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 0dd80709b5
			
		
	
	
		0dd80709b5
		
			
		
	
	
	
	
		
			
			Currently, "pip3 install --upgrade pip" unconditionally installs a "pip" alias even for Python 3. If a user has an existing Python 3.x installed from a python.org macOS installer and then subsequently manually updates to a new version of pip, there may now be a stray "pip" alias in the Python 3.x framework bin directory which can cause confusion if the user has both a Python 2.7 and 3.x installed; if the Python 3.x fw bin directory appears early on $PATH, "pip" might invoke the pip3 for the Python 3.x rather than the pip for Python 2.7. To try to mitigate this, the macOS installer script for the ensurepip option will unconditionally remove "pip" from the 3.x framework bin directory being updated / installed. (The ambiguity can be avoided by using "pythonx.y -m pip".)
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Install/upgrade pip.
 | |
| #
 | |
| 
 | |
| PYVER="@PYVER@"
 | |
| PYMAJOR="@PYMAJOR@"
 | |
| FWK="/Library/Frameworks/Python.framework/Versions/${PYVER}"
 | |
| RELFWKBIN="../../..${FWK}/bin"
 | |
| 
 | |
| umask 022
 | |
| 
 | |
| "${FWK}/bin/python${PYVER}" -E -s -m ensurepip --upgrade
 | |
| 
 | |
| # bpo-33290: An earlier "pip3 install --upgrade pip" may have installed
 | |
| #     a "pip" in the fw bin directory.  For a py3 install, remove it.
 | |
| 
 | |
| rm -f "${FWK}/bin/pip"
 | |
| 
 | |
| "${FWK}/bin/python${PYVER}" -E -s -Wi \
 | |
|     "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \
 | |
|     -f -x badsyntax \
 | |
|     "${FWK}/lib/python${PYVER}/site-packages"
 | |
| 
 | |
| "${FWK}/bin/python${PYVER}" -E -s -Wi -O \
 | |
|     "${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \
 | |
|     -f -x badsyntax \
 | |
|     "${FWK}/lib/python${PYVER}/site-packages"
 | |
| 
 | |
| chgrp -R admin "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"
 | |
| chmod -R g+w "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"
 | |
| 
 | |
| # We do not know if the user selected the Python command-line tools
 | |
| # package that installs symlinks to /usr/local/bin.  So we assume
 | |
| # that the command-line tools package has already completed or was
 | |
| # not selected and we will only install /usr/local/bin symlinks for
 | |
| # pip et al if there are /usr/local/bin/python* symlinks to our
 | |
| # framework bin directory.
 | |
| 
 | |
| if [ -d /usr/local/bin ] ; then
 | |
|     (
 | |
|         install_links_if_our_fw() {
 | |
|             if [ "$(readlink -n ./$1)" = "${RELFWKBIN}/$1" ] ; then
 | |
|                 shift
 | |
|                 for fn ;
 | |
|                 do
 | |
|                     if [ -e "${RELFWKBIN}/${fn}" ] ; then
 | |
|                         rm -f ./${fn}
 | |
|                         ln -s "${RELFWKBIN}/${fn}" "./${fn}"
 | |
|                         chgrp -h admin "./${fn}"
 | |
|                         chmod -h g+w "./${fn}"
 | |
|                     fi
 | |
|                 done
 | |
|             fi
 | |
|         }
 | |
| 
 | |
|         cd /usr/local/bin
 | |
| 
 | |
|         # Create pipx.y and easy_install-x.y links if /usr/local/bin/pythonx.y
 | |
|         #   is linked to this framework version
 | |
|         install_links_if_our_fw "python${PYVER}" \
 | |
|                                     "pip${PYVER}" "easy_install-${PYVER}"
 | |
| 
 | |
|         # Create pipx link if /usr/local/bin/pythonx is linked to this version
 | |
|         install_links_if_our_fw "python${PYMAJOR}" \
 | |
|                                     "pip${PYMAJOR}"
 | |
| 
 | |
|         # Create pip and easy_install link if /usr/local/bin/python
 | |
|         #   is linked to this version
 | |
|         install_links_if_our_fw "python" \
 | |
|                                     "pip" "easy_install"
 | |
|     )
 | |
| fi
 | |
| exit 0
 |