Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Added Python 3.3.0 to python3.rb #15199

wants to merge 1 commit into from

5 participants


It'd be great if someone could double check that I did this correctly. It's working fine locally for me, but I'd like to make sure.


I'm heaving troubles having it installed without Xcode (only CLT) :

$ brew install python3
==> Downloading
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/python3/3.3.0 --enable-ipv6 --dataroo
==> make
==> make install PYTHONAPPSDIR=/usr/local/Cellar/python3/3.3.0
/usr/bin/install -c -s ../python.exe "/usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/Resources/"
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information.
install: child process failed: xcrun strip - /usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/Resources/
make[1]: *** [install_Python] Error 70
make: *** [frameworkinstallapps] Error 2

Error: python3 did not build
Logs: /Users/Den/Library/Logs/Homebrew/python3/

I'm not sure if that's OK as i've not used Python3 before this release. Python2 builds fine without Xcode.


Hmmm....I dunno. I just changed all the 3.2.x to 3.3.0 and added the correct checksum so I would've thought it would build the same as before....


This err is known and is there for the 3.2 version, too (I assume).
We had this for python 2.7, too, but fixed it recently. The fix is not a one-liner though, but I plan to apply the fix to python 3.x as I did for 2.7.

So in short: python 3.2 and python 3.3 do need Xcode right now (and maybe X11, too) but we can fix this in the next days, when I get to it.


This should also use pip-1.2 instead of 1.1. Thanks!

 class Pip < Formula
-  url ''
-  sha1 '3b002db66890880ee776bbe199c3d326d8fe3d6f'
+  url ''
+  sha1 '7876f943cfbb0bbb725c2761879de2889c1fe93b'

1.2.1 maybe?


Oh, yes, right.


Yep, unless you want to wait for tomorrow, when I will apply the changes from python 2.7 formula to 3.2/3.


Any news here?


Please have a look at #15297 and test it, if you can. Feedback welcome.


@dsr Thanks for your, fast pull request after 3.3 release and sorry, that I was a bit behind with python 3.3 due to some urgent python 2.x issues. I ported the fixes from the python formula to python3 now and then did the version bump. (PR still open)

Also in awaiting 3.4 at some point in the future, I introduced a helper variable to easier hop from one to the next 3.x release.


I've never really committed and then had changes made on top of my commit. Do I need pull your changes @samueljohn ?


@dsr yep, two possible ways:

1) make a git branch then brew pull 15297 (all in the brew --prefix dir). So you can later go back to master easily.
2) Get the direct raw url of my formula in my pull request. Like so brew install


@samueljohn Waitaminute....brew knows when you're working on a dev branch or something?


@dsr not sure if I understand your question correctly.

Therefore, I describe the general background. Eventually things will get clearer:

In the brew --prefix dir, there is a hidden .git directory and this makes homebrew just an ordinary git repository. Normally you are on the master branch with the origin set to mxcl/homebrew from github. You can change that and/or add other branches or remotes (e.g. your own fork of homebrew) just like for any git repo.

When you brew update, I think, it attempts to switch back to master and then git pulls the new things in. However, that will error out, if you made changes yourself.

So, at any given time, you can git checkout -b my_new_test_branch and mess around and commit. And later switch back to git checkout master.

The brew pull <issuenumber> is a nice feature of homebrew that will apply the work of a given pull request (issue) onto the current branch in the form of a patch. So you'll have to undo it or switch to a new branch brefore.
Undoing is most often as easy as git reset --hard origin/master.

The other (perhaps simpler) method to test a certain pull request is to install from the url directly.

Hope this helps.


@samueljohn Definitely helps. Thanks for taking the time to elaborate.

@ghost ghost closed this
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Sep 30, 2012
  1. @btnpushnmunky

    python3 updated to 3.3.0

    btnpushnmunky authored
This page is out of date. Refresh to see the latest.
Showing with 14 additions and 14 deletions.
  1. +14 −14 Library/Formula/python3.rb
28 Library/Formula/python3.rb
@@ -19,8 +19,8 @@ class Pip < Formula
class Python3 < Formula
homepage ''
- url ''
- sha1 '4c2d562a0681ba27bc920500050e2f08de224311'
+ url ''
+ sha1 '3e1464bc2c1dfa74287bc58da81168f50b0ae5c7'
env :std
@@ -34,12 +34,12 @@ class Python3 < Formula
option 'quicktest', 'Run `make quicktest` after the build'
def site_packages_cellar
- prefix/"Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages"
+ prefix/"Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages"
# The HOMEBREW_PREFIX location of site-packages.
def site_packages
- HOMEBREW_PREFIX/"lib/python3.2/site-packages"
+ HOMEBREW_PREFIX/"lib/python3.3/site-packages"
# Where distribute/pip will install executable scripts.
@@ -48,7 +48,7 @@ def scripts_folder
def effective_lib
- prefix/"Frameworks/Python.framework/Versions/3.2/lib"
+ prefix/"Frameworks/Python.framework/Versions/3.3/lib"
def install
@@ -106,7 +106,7 @@ def install
# Post-install, fix up the site-packages and install-scripts folders
# so that user-installed Python software survives minor updates, such
- # as going from 3.2.2 to 3.2.3.
+ # as going from 3.3.2 to 3.3.0.
# Remove the site-packages that Python created in its Cellar.
@@ -117,25 +117,25 @@ def install
# "python3" and executable is forgotten for framework builds.
# Make sure homebrew symlinks it to HOMEBREW_PREFIX/bin.
- ln_s "#{bin}/python3.2", "#{bin}/python3" unless (bin/"python3").exist?
+ ln_s "#{bin}/python3.3", "#{bin}/python3" unless (bin/"python3").exist?
# Tell distutils-based installers where to put scripts
- (effective_lib/"python3.2/distutils/distutils.cfg").write <<-EOF.undent
+ (effective_lib/"python3.3/distutils/distutils.cfg").write <<-EOF.undent
# Install distribute for python3 do
- system "#{bin}/python3.2", "", "install", "--force", "--verbose"
+ system "#{bin}/python3.3", "", "install", "--force", "--verbose"
# Symlink to easy_install3 to match python3 command.
unless (scripts_folder/'easy_install3').exist?
ln_s scripts_folder/"easy_install", scripts_folder/"easy_install3"
- # Install pip-3.2 for python3
- { system "#{bin}/python3.2", "", "install", "--force", "--verbose" }
+ # Install pip-3.3 for python3
+ { system "#{bin}/python3.3", "", "install", "--force", "--verbose" }
def caveats
@@ -158,7 +158,7 @@ def caveats
A "distutils.cfg" has been written, specifying the install-scripts directory as:
- If you install Python packages via "pip-3.2 install x" or "python3 install"
+ If you install Python packages via "pip-3.3 install x" or "python3 install"
(or the outdated easy_install3), any provided scripts will go into the
install-scripts folder above, so you may want to add it to your PATH.
@@ -166,8 +166,8 @@ def caveats
Distribute and Pip have been installed. To update them:
- #{scripts_folder}/pip-3.2 install --upgrade distribute
- #{scripts_folder}/pip-3.2 install --upgrade pip
+ #{scripts_folder}/pip-3.3 install --upgrade distribute
+ #{scripts_folder}/pip-3.3 install --upgrade pip
Something went wrong with that request. Please try again.