1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-08 11:33:49 -05:00

Compare commits

...

308 Commits

Author SHA1 Message Date
Yamashita Yuu
e835d447ed v0.4.0-20140211 2014-02-11 12:11:38 +09:00
Yamashita Yuu
7f44afc1c0 Remove 3.3.4rc1 (fixes #112) 2014-02-11 12:06:09 +09:00
Yamashita, Yuu
f380967e8d Merge pull request #113 from AustinMatherne/master
Add support for Python 3.3.4
2014-02-11 12:04:34 +09:00
Austin Matherne
d640941976 Add support for Python 3.3.4 2014-02-10 20:14:29 -06:00
Yamashita Yuu
e58ac666c4 Fix permission of installed definitinos 2014-02-09 11:20:59 +09:00
Yamashita Yuu
ce99decad5 Update changelog 2014-02-08 19:33:57 +09:00
Yamashita Yuu
719e6db358 Import recent changes from ruby-build 20140204 2014-02-08 19:31:35 +09:00
Yamashita Yuu
e0547de922 Update changelog 2014-02-08 18:51:59 +09:00
Yamashita Yuu
4b9907af1c Update setuptools (2.1.2 -> 2.2) 2014-02-08 18:37:06 +09:00
Yamashita Yuu
1d09851b2b Merge branch 'raspbian' 2014-02-08 01:06:35 +09:00
Yamashita Yuu
800ccaa5e3 Add armv6l and armv7l 2014-02-08 01:02:59 +09:00
Yamashita Yuu
00da261211 Install Raspbian binaries of pypy 2014-02-06 22:26:35 +09:00
Yamashita Yuu
b81d0ff0cd Update setuptools (2.1 -> 2.1.2) 2014-02-06 21:20:57 +09:00
Yamashita Yuu
715a7789ba Run python-build tests as script on travis-ci 2014-02-06 12:26:48 +09:00
Yamashita Yuu
6aa6d6b026 Fix broken test 2014-02-06 12:24:17 +09:00
Yamashita Yuu
62f9b7a731 Display error if wget doesn't support SNI (#60) 2014-02-06 12:18:41 +09:00
Yamashita Yuu
cc967fddb7 Refactor definitions of pypy 2014-02-04 21:03:51 +09:00
Yamashita Yuu
27ebc8bab7 Merge branch 'anaconda' 2014-02-04 18:33:37 +09:00
Yamashita Yuu
71db79eded Add old Anaconda/Miniconda releases 2014-02-04 13:46:07 +09:00
Yamashita Yuu
3aa263b51f Add Miniconda 3.0.0 2014-02-04 13:04:33 +09:00
Yamashita Yuu
59fbf8d103 Add Anaconda 1.8.0 2014-02-04 12:44:45 +09:00
Yamashita Yuu
b21d2c7dea Merge branch 'update-readme' 2014-01-29 18:01:29 +09:00
Yamashita Yuu
20e5404248 Update README about usage with multiple versions (#92) 2014-01-29 18:00:56 +09:00
Yamashita Yuu
56c58e2778 Modernize python versions in README 2014-01-29 17:54:01 +09:00
Yamashita Yuu
3c6ecaf66a Update pip (1.5.1 -> 1.5.2) 2014-01-27 21:55:58 +09:00
Yamashita Yuu
87ca55100b Add 3.3.4rc1 and 3.4.0b3 2014-01-27 21:52:23 +09:00
Yamashita Yuu
589872affb Set proper PYENV_VERSION during pyenv install 2014-01-27 15:04:51 +09:00
Yamashita Yuu
73d5ea7426 v0.4.0-20140123 2014-01-23 19:14:26 +09:00
Yamashita Yuu
b992ffca1d Merge branch 'rbenv-pr531' 2014-01-23 11:16:51 +09:00
Yamashita Yuu
9c82314570 Unset GREP_OPTIONS to avoid unexpected grep behavior (fixes #101) 2014-01-23 11:11:56 +09:00
Yamashita Yuu
403154e09e Update pip (1.5 -> 1.5.1) 2014-01-21 16:18:19 +09:00
Yamashita Yuu
b44398e954 Add .gitignore 2014-01-21 00:04:02 +09:00
Yamashita Yuu
46a01b1643 Merge branch 'enable-framework' 2014-01-18 10:08:37 +09:00
Yamashita Yuu
bf94eb8cbe Add workaround for --enable-framework to work with CPython 2.7.6 2014-01-18 09:59:17 +09:00
Yamashita Yuu
b225f2030d Add support for --enable-framework (#55, #99)
```
$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.3.2
```
2014-01-18 01:52:50 +09:00
Yamashita Yuu
cbe7d0241b Merge branch 'python-build-test' 2014-01-17 21:28:03 +09:00
Yamashita Yuu
e65a10be51 Add bats test for python-build 2014-01-17 21:18:22 +09:00
Yamashita Yuu
badc8255ab Do not invoke use_homebrew_readline twice 2014-01-17 21:09:52 +09:00
Yamashita Yuu
385d3337ef Merge branch 'ensurepip' 2014-01-16 18:33:26 +09:00
Yamashita Yuu
558200285b Use ensurepip to install pip if available 2014-01-16 18:10:52 +09:00
Yamashita Yuu
2c26b0870a Setup built-in patches out from stub functions of `{before,after}_install_package}. 2014-01-15 17:20:41 +09:00
Yamashita Yuu
2cea06b88a Sort built-in patches by its name 2014-01-15 17:09:58 +09:00
Yamashita Yuu
c977774977 Merge branch 'issue98' 2014-01-15 16:42:14 +09:00
Yamashita Yuu
314937d599 Set PYENV_BIN_PATH in PATH even if the version is system (fixes #98) 2014-01-15 16:41:06 +09:00
Yamashita Yuu
07ae0d8e42 Import changes from ruby-build 20140110.1 2014-01-10 20:05:01 +09:00
Yamashita Yuu
461c5bbc2d Merge branch 'release-0.4.0-20140110.1' 2014-01-10 15:04:36 +09:00
Yamashita Yuu
a7f5a19a24 v0.4.0-20140110.1 2014-01-10 15:04:16 +09:00
Yamashita Yuu
f344731cf9 Merge branch 'osx-llvm-gcc' 2014-01-10 13:17:16 +09:00
Yamashita Yuu
a3f35b7e0d Fallback to use clang if there is gcc not installed 2014-01-10 13:16:37 +09:00
Yamashita Yuu
b025dbfdab Add require_cc again 2014-01-10 13:15:56 +09:00
Yamashita Yuu
efd9c1cd48 Merge branch 'release-0.4.0-20140110' 2014-01-10 11:28:17 +09:00
Yamashita Yuu
38eb9fe948 v0.4.0-20140110 2014-01-10 11:27:43 +09:00
Yamashita Yuu
6ee7aaf611 Should not recognize cc as clang 2014-01-09 18:18:50 +09:00
Yamashita Yuu
93ba3a4c51 Use same require_gcc as ruby-build 2014-01-08 22:34:10 +09:00
Yamashita Yuu
34087d03ec Add build status badge 2014-01-08 21:47:36 +09:00
Yamashita Yuu
f136b219db Update pip (1.4.1 -> 1.5) 2014-01-08 21:44:19 +09:00
Yamashita Yuu
84705cfe61 Update setuptools (2.0.2 -> 2.1) 2014-01-08 21:42:59 +09:00
Yamashita Yuu
2a9f6038e0 Use package_option() to setup configure options 2014-01-08 11:49:48 +09:00
Yamashita Yuu
0e3e603429 Don't check $(uname -s) twice 2014-01-08 10:56:43 +09:00
Yamashita Yuu
71a916faf2 simplicy the check for infinite loop 2014-01-08 10:54:11 +09:00
Yamashita Yuu
8e02b93e39 Call build_package_ldflags_dirs to suppress linker warnings 2014-01-07 12:46:40 +09:00
Yamashita Yuu
a7a99c75eb Apply patch only if there are patches exist for the package 2014-01-07 11:52:22 +09:00
Yamashita Yuu
bb3b5de179 Add CPython 3.4.0b2 2014-01-06 13:03:40 +09:00
Yamashita Yuu
f956502fd8 Merge branch 'avoid-infinite-loop-even-if-pwd-returns-relative-path' 2014-01-03 08:36:05 +09:00
Yamashita Yuu
4c5ffc8d99 Avoid infinite loop in case where pwd returns relative path
The `pwd` may return relative path if the `$PWD` is badly declared
in bash/zsh (e.g. `PWD="." bash`). To avoid the infinite loop in
`find_local_version_file()`, stop finding the version file if the
target paths are same consecutively.
2014-01-03 08:35:39 +09:00
Yamashita Yuu
8dc4e8d6f8 Revert "Merge branch 'golang-workaround'"
This reverts commit 7edceff71c, reversing
changes made to 5dea3c9e63.
2014-01-03 07:39:52 +09:00
Yamashita Yuu
7edceff71c Merge branch 'golang-workaround' 2014-01-03 06:23:03 +09:00
Yamashita Yuu
1587d8a03c Apply readlink to output from pwd may returns "." to get actual path 2014-01-03 05:07:21 +09:00
Yamashita Yuu
5dea3c9e63 Import changes from recent rbenv 2014-01-03 04:58:44 +09:00
Yamashita Yuu
12d4fdb307 Merge branch 'unittest' (#21) 2014-01-03 04:43:44 +09:00
Yamashita Yuu
319721b380 Modify applications and versions for Python 2014-01-03 04:41:23 +09:00
Yamashita Yuu
3dd9332eee Fix broken tests 2014-01-03 04:33:30 +09:00
Yamashita Yuu
88922e2bc0 Remove version-ext-compat plugin to make test success 2014-01-03 02:07:20 +09:00
Yamashita Yuu
0965577b93 Import tests from rbenv with sed -e s/rbenv/pyenv/g 2014-01-03 02:06:36 +09:00
Yamashita Yuu
f538169992 Restore OLDIFS expectedly 2014-01-03 01:47:10 +09:00
Yamashita Yuu
d03f290b5d s/rbenv/pyenv/ 2014-01-02 22:49:23 +09:00
Yamashita Yuu
8ddf8760d5 Import recent changes from rbenv 0.4.0 2014-01-02 22:45:02 +09:00
Yamashita Yuu
8fa6b4a184 CPython installer requires existing Pyhthon of similar version. 2013-11-19 18:02:59 +09:00
Yamashita Yuu
e1a5b326e4 Merge branch 'ruby-build-style-patching' 2014-01-01 13:01:34 +09:00
Yamashita Yuu
8892f3735d Use -p0 for all patches to keep things simple (sstephenson/ruby-build#484)
There is filterdiff(1) available to transform strip level of a patch if
optional level is required.

```
git diff HEAD^ | filterdiff --strip=1 | pyenv install -p 3.3.3
```
2014-01-01 12:25:17 +09:00
Yamashita Yuu
9eedd4ef84 Update setuptools (2.0.1 -> 2.0.2) 2013-12-31 22:19:22 +09:00
Yamashita Yuu
b70dcb9f2d Add list_patches() to sort patches by their names 2013-12-26 16:31:43 +09:00
Yamashita Yuu
008a5a1ff9 Force PYTHON_BUILD_PATCH_PATH to be absolute path 2013-12-26 16:30:16 +09:00
Yamashita Yuu
5b7eb42a9f Add -p0 as an option for patch if both PATCH_OPTS and PACKAGE_PATCH_OPTS aren't defined 2013-12-26 15:44:56 +09:00
Yamashita Yuu
35d4cd2259 Remove PACKAGE_PATCH_STRIP. Use PACKAGE_PATCH_OPTS instead. 2013-12-26 14:01:46 +09:00
Yamashita Yuu
5bff9c773a Reliably detect parent shell in pyenv init (fixes #93)
Imported changes from sstephenson/rbenv#453.
2013-12-26 13:48:43 +09:00
Yamashita Yuu
6efb3c327f Revert setuptools version for jython-2.7-beta1 (2.0.1 -> 2.0)
Could not install setuptools 2.0.1 for jython-2.7-beta1 by the
lack of `parser` module.
2013-12-25 20:42:11 +09:00
Yamashita Yuu
1a05d9a8cd Merge branch 'apply-extra-patches' 2013-12-21 01:06:13 +09:00
Yamashita Yuu
df51c13323 Use cp -RPp to copy share directories recursively.
We have some patches for CPython in `share/python-build/patches`.
2013-12-21 01:04:19 +09:00
Yamashita Yuu
a025866bac Update setuptools (2.0 -> 2.0.1) 2013-12-21 00:50:28 +09:00
Yamashita Yuu
2797f3d80e Update README about PYTHON_PATCH_PATH. 2013-12-21 00:36:32 +09:00
Yamashita Yuu
0d85193f39 Remove -Wl,-rpath=... from LDFLAGS on Darwin to fix build.
We don't need to set `rpath` explicitly because the ld on Darwin
embeds the full paths to each dylib by default
2013-12-20 20:37:47 +09:00
Yamashita Yuu
4d534fed31 Merge branch 'enable-shared' 2013-12-20 18:36:42 +09:00
Yamashita Yuu
43212f64ed Pass rpath to linker if --enable-shared was given (#65, #66, #82) 2013-12-20 18:22:43 +09:00
Yamashita Yuu
75559df89d Search extra patches from given directory then apply it during build (#91)
```
$ env PYTHON_PATCH_PATH="./patches" PYTHON_PATCH_OPTS="-p1" pyenv install 2.7.6
```
2013-12-20 17:17:17 +09:00
Yamashita Yuu
3d5156ed1d v0.4.0-20131217 2013-12-17 11:46:44 +09:00
Yamashita Yuu
aa76fd2f9c On Darwin, should not build readline if there is brewed readline 2013-12-16 16:27:45 +09:00
Yamashita Yuu
db141f66a4 Restored has_broken_mac_llvm_gcc which is required to build 3.3+ on Darwin 2013-12-16 16:24:25 +09:00
Yamashita Yuu
fe07deb193 v0.4.0-20131216 2013-12-16 13:51:48 +09:00
Yamashita Yuu
7159e24aa8 Update ChangeLog 2013-12-16 13:50:52 +09:00
Yamashita Yuu
1cc90d31ae Import changes from ruby-build v20131211 2013-12-16 13:44:03 +09:00
Yamashita, Yuu
76bf3ee0d6 Merge pull request #88 from pwdtnx/fix-prefix-system
Fix pyenv-prefix to trim "/bin" in `pyenv prefix system`
2013-12-12 07:38:10 -08:00
Tanix
fd3dd225ba rewrite strip of PYENV_PREFIX_PATH in a single line 2013-12-12 23:05:31 +09:00
Tanix
140808e3d4 Fix pyenv-prefix to trim "/bin" in pyenv prefix system 2013-12-12 22:16:43 +09:00
Yamashita Yuu
edb5a32620 Update setuptools (1.4.2 -> 2.0) for Python 2.6+ 2013-12-12 18:20:57 +09:00
Yamashita Yuu
88e2d73d52 Update setuptools (1.4.1 -> 1.4.2) 2013-12-02 15:35:35 +09:00
Yamashita Yuu
7b95fea77e Add PyPy 2.2.1 2013-11-29 12:58:31 +09:00
Yamashita Yuu
20eb5c4913 Update setuptools (1.4 -> 1.4.1) 2013-11-27 20:48:06 +09:00
Yamashita Yuu
bc2d2456ae Add CPython 3.4.0b1 2013-11-25 16:07:27 +09:00
Yamashita, Yuu
064531ea1f Merge pull request #83 from thedrow/patch-1
Added a link about the common build problems.
2013-11-20 18:41:33 -08:00
Omer Katz
80b8508dbc Added a link about the common build problems. 2013-11-20 18:16:03 +02:00
Yamashita Yuu
02e073a503 remove useless patch from 2.6-dev 2013-11-20 19:06:40 +09:00
Yamashita Yuu
e094d683ed Update setuptools (1.3.2 -> 1.4) 2013-11-19 19:41:44 +09:00
Yamashita Yuu
bd1454c69f Remove 3.3.3-rc[12] because 3.3.3 has been released 2013-11-19 19:06:48 +09:00
Yamashita Yuu
b726d645c3 http://www.python.org/ -> http://python.org/ 2013-11-19 19:03:19 +09:00
Anthon van der Neut
78441ce084 Released Python 3.3.3 2013-11-19 18:56:02 +09:00
Yamashita Yuu
4953fa4034 Apply built-in patches only if patch is not given via STDIN 2013-11-19 05:58:21 +09:00
Yamashita Yuu
1f76effbfb Import changes from ruby-build v20131225.1 2013-12-27 18:44:54 +09:00
Yamashita Yuu
5e20237f5b v0.4.0-20131116 2013-11-16 19:29:30 +09:00
Yamashita Yuu
dd44d0a713 Add CPython 3.3.3 RC1/RC2 2013-11-16 19:04:42 +09:00
Yamashita Yuu
a28c040eb9 Add PyPy 2.2 (closes #77) 2013-11-15 12:32:57 +09:00
Yamashita Yuu
6a787dd951 Update setuptools (1.1.7 -> 1.3.2) 2013-11-11 20:44:24 +09:00
Yamashita Yuu
5d9132623f Add CPython 2.7.6 2013-11-11 20:41:53 +09:00
Yamashita Yuu
f7193b09fd Merge branch 'ruby-build-v20131030' 2013-11-01 18:30:24 +09:00
Yamashita Yuu
498d226b2f Import changes from ruby-build v20131030 2013-11-01 18:30:00 +09:00
Yamashita Yuu
ccc51244e3 Add CPython 2.6.9 2013-11-01 17:13:29 +09:00
Yamashita Yuu
516f49e913 Update setuptoos (1.1.6 -> 1.1.7) 2013-11-01 17:00:16 +09:00
Yamashita Yuu
a2ab3bc32c v0.4.0-20131023 2013-10-23 15:19:33 +09:00
Yamashita Yuu
ab4a8396e1 Add 3.4.0a4 2013-10-23 15:18:14 +09:00
Yamashita Yuu
733cb397b2 improve messages on failed import 2013-10-15 14:04:38 +09:00
Yamashita Yuu
7f9a2325e5 Add 3.4.0a3 2013-10-04 12:52:05 +09:00
Yamashita Yuu
625b3b7ec1 Update setuptools (1.1.4 -> 1.1.6) 2013-10-04 12:49:41 +09:00
Yamashita Yuu
c95d446c53 Merge branch 'improved-fish-support' 2013-09-30 18:02:54 +09:00
Yamashita Yuu
6e749ef12f Import recent changes relating to fish from rbenv 2013-09-30 18:02:12 +09:00
Yamashita Yuu
850dd87332 Merge branch 'appropriate-tar-options' 2013-09-14 17:00:32 +09:00
Yamashita Yuu
fb3e9b020e Use appropriciate tar option per compression types (#58) 2013-09-14 16:50:52 +09:00
Yamashita, Yuu
02a348b657 Merge pull request #57 from rluders/patch-1
Ubuntu environment configuration
2013-09-13 03:10:29 -07:00
Ricardo Lüders
5c41dc3901 Ubuntu environment configuration 2013-09-12 21:07:40 -03:00
Yamashita Yuu
74a3c55623 Add CPython 3.4.0a2 2013-09-10 21:32:01 +09:00
Yamashita Yuu
bc8c8a6cd9 Update setuptools (1.1 -> 1.1.4) 2013-09-10 21:31:55 +09:00
Yamashita Yuu
99bc72a908 Wipe out CPython-specific scripts from build_package_standard() 2013-09-02 17:13:17 +09:00
Yamashita Yuu
aab8bb262d Update setuptools (1.0 -> 1.1) 2013-08-29 12:14:36 +09:00
Yamashita, Yuu
f14a4ef8e5 Merge pull request #54 from apbarrero/alternative_install
Installation instructions for any installation directory.
2013-08-28 00:18:45 -07:00
Antonio Perez Barrero
3bf50856ce Installation instructions for any installation directory.
Updated README.md contents so that installation instructions cover
not only the common case for installation directory, i.e. `~/.pyenv`
but any other at the user's choice.
2013-08-28 08:33:18 +02:00
Yamashita, Yuu
c3e55aa5ae Merge pull request #53 from stephendavis89/master
Fix spelling error in README
2013-08-27 20:05:12 -07:00
Stephen Davis
704548336a Fix spelling error 2013-08-27 15:27:57 -04:00
Yamashita Yuu
0ea5e12b4a Update changelog 2013-08-23 18:40:12 +09:00
Yamashita Yuu
28fd240de2 Update setuptools (0.9.7 -> 1.0) 2013-08-23 18:36:21 +09:00
Yamashita Yuu
586c0e6d62 Update pip (1.4 -> 1.4.1) 2013-08-23 18:31:22 +09:00
Yamashita, Yuu
c920eaa9be Merge pull request #49 from yyuu/fish-support
Fish support (#32)
2013-08-15 20:44:10 -07:00
Yamashita Yuu
d2f210d70d Implement sub-command completion for fish shell 2013-08-16 12:24:53 +09:00
Yamashita Yuu
683036298e fish doesn't have builtin command equivalent to bash's hash -r. 2013-08-15 22:56:57 +09:00
Yamashita Yuu
93b536863f Support fish shell 2013-08-15 22:56:53 +09:00
Yamashita Yuu
403f4eb7a7 Preserve original IFSs 2013-08-15 22:29:47 +09:00
Yamashita Yuu
4c71f3c5cd Apply --with-pydebug configure option only for Python 2013-08-08 11:58:01 +09:00
Yamashita Yuu
106e4cae90 Homebrew homepage location changed 2013-08-06 22:57:45 +09:00
Yamashita Yuu
10221d51f1 Add 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5 2013-08-02 00:32:09 +09:00
Yamashita Yuu
aff87c3cb3 Rename; pypy-py3k-dev -> pypy3-dev 2013-08-02 00:13:50 +09:00
Yamashita Yuu
b0f640db61 Add pypy3-2.1-beta1 2013-08-02 00:13:50 +09:00
Yamashita Yuu
af0fed2e34 Add pypy-2.1 2013-08-01 23:58:33 +09:00
Yamashita Yuu
e996f2f51a Merge branch 'py24-multiarch-patch' 2013-08-01 23:23:30 +09:00
Yamashita, Yuu
0fe18d0dc1 Merge pull request #45 from Domon/fix-formatting-in-readme
Fix formatting in the Homebrew section of README
2013-08-01 03:16:48 -07:00
Chun-wei Kuo
cc6c45d7fb Fix formatting in the Homebrew section of README 2013-08-01 18:01:38 +08:00
Yamashita Yuu
2646c6c159 Add _multiarch_ patch to fix build of CPython 2.4.x 2013-08-01 17:26:37 +09:00
Yamashita Yuu
ce66352f6d v0.4.0-20130726 2013-07-26 16:59:51 +09:00
Yamashita Yuu
9e133adf99 Merge branch 'ruby-build-20130628' 2013-07-26 00:05:19 +09:00
Yamashita Yuu
b1851f2aff Update README 2013-07-25 17:19:59 +09:00
Yamashita Yuu
b943e0abff Import changes from ruby-build v20130628 2013-07-25 17:19:55 +09:00
Yamashita Yuu
d6d556911b Merge branch 'fix-build-on-suse' (fixes #36) 2013-07-24 22:57:59 +09:00
Yamashita Yuu
b8ecd2d6dd Specify --libdir on configure to fix build on openSUSE (#36) 2013-07-24 18:43:20 +09:00
Yamashita Yuu
1e5ef005fb Update setuptools (0.9.5 -> 0.9.7) 2013-07-24 17:17:48 +09:00
Yamashita Yuu
d11db0f0f2 Update pip for Python 2.6+ (1.3 -> 1.4) 2013-07-24 17:09:40 +09:00
Yamashita, Yuu
8e43e72082 Merge pull request #37 from flavio/build_python_2_4
Allow installation of python 2.4.2
2013-07-23 23:37:31 -07:00
Flavio Castelli
ae86a253e2 Allow installation of python 2.4 series
Make possible to install python 2.4.2 and 2.4.6.
2013-07-22 14:53:09 +02:00
Yamashita Yuu
0c38147fcb Fix build of native modules of Carbon/ncurses on OS X 10.7 2013-07-20 20:53:38 +09:00
Yamashita Yuu
e1ea64b0b9 Merge branch 'issue33' 2013-07-19 22:02:16 +09:00
Yamashita Yuu
fa35e792c1 Backport libffi-osx from 2.7.5 to build ctypes on OS X (#33) 2013-07-19 21:47:51 +09:00
Yamashita Yuu
f5807424c2 Add patches for 2.5 to fix biuld on OS X 10.7/10.8 (#33) 2013-07-19 18:08:02 +09:00
Yamashita Yuu
4c006959fa fix broken string match in has_broken_mac_llvm_gcc() 2013-07-17 17:02:23 +09:00
Yamashita Yuu
f9a19e3f24 s/gcc_llvm/llvm_gcc/g 2013-07-17 16:38:57 +09:00
Yamashita Yuu
d5c24f5122 Update setuptools (0.8 -> 0.9.5) 2013-07-17 15:51:19 +09:00
Yamashita Yuu
392e404cc6 Use https instead of http when downloading from pypi 2013-07-08 16:27:01 +09:00
Yamashita Yuu
b04e067c83 update setuptools (0.7.7 -> 0.8) 2013-07-08 16:25:24 +09:00
Yamashita Yuu
ed2937f4d1 update setuptools (0.7.4 -> 0.7.7) 2013-07-04 17:23:38 +09:00
Yamashita Yuu
8848006540 remove meaningless break (fixes #26) 2013-07-03 11:15:58 +09:00
Yamashita Yuu
7a4fe458b8 Merge branch 'llvm-gcc-4.2-on-osx' 2013-06-29 12:32:35 +09:00
Yamashita Yuu
f76faa88b8 add has_broken_mac_gcc_llvm and use clang if true 2013-06-29 12:27:33 +09:00
Yamashita Yuu
9ce760c798 add require_cc() to test existence of CC other than GCC 2013-06-28 12:18:45 +09:00
Yamashita Yuu
152ebe6e61 Download GNU Readline from mirror site of GNU 2013-06-27 12:28:34 +09:00
Yamashita Yuu
1a6eb80bcd should not declare IFS in toplevel 2013-06-21 19:37:58 +09:00
Yamashita Yuu
745bceac22 update setuptools (0.7.2 -> 0.7.4) 2013-06-20 12:31:18 +09:00
Yamashita Yuu
583f3b0e21 fix build of 3.4-dev. append existing 3.4 at the last.
this is because `hg` (which is a dependency of *-dev build) might be
installed in existing pyenv versions.
2013-06-19 18:48:58 +09:00
Yamashita Yuu
cc9c72747a v0.4.0-20130613 2013-06-13 20:52:10 +09:00
Yamashita Yuu
b473f7a271 add CHANGELOG.md 2013-06-13 20:51:17 +09:00
Yamashita Yuu
b726ace943 update README about Homebrew 2013-06-13 20:04:37 +09:00
Yamashita Yuu
499edda1d7 Merge branch 'preparing-removal-of-pyenv-version-ext' 2013-06-13 12:40:13 +09:00
Yamashita Yuu
3bfd91de51 rename to version-ext-compat because pyenv-version-ext must precede
than compatibility plugin.
2013-06-13 12:37:35 +09:00
Yamashita Yuu
c7e139186b update README 2013-06-13 12:20:31 +09:00
Yamashita Yuu
7c84490649 ignore pyenv-version-ext-compat plugin 2013-06-13 12:14:17 +09:00
Yamashita Yuu
b75ef17db7 add deprecation warning for push/pop commands 2013-06-13 12:13:41 +09:00
Yamashita Yuu
daa12e97c6 rename plugin 2013-06-13 12:04:09 +09:00
Yamashita Yuu
1c5eb82e93 Merge branch 'has_broken_mac_readline' (fixes #23) 2013-06-13 11:32:12 +09:00
Yamashita Yuu
ff387010b3 use environment variable "${CPP}" if defined 2013-06-12 20:43:19 +09:00
Yamashita Yuu
27dd805acb enable require_gcc to confirm if there is $CC 2013-06-12 16:11:07 +09:00
Yamashita Yuu
5f1761645f fix has_broken_mac_openssl for building Python.
`--with-*-dir` is only effective for Ruby's mkmf.rb.
2013-06-12 16:09:41 +09:00
Yamashita Yuu
f8c9282e8c Install GNU Readline on Darwin if the readline is broken (refs #23)
The `has_broken_mac_readline` checks the existence of
`readline/rhconf.h`. This is the same mechanism as setup.py of CPython.
2013-06-12 16:04:20 +09:00
Yamashita Yuu
37f46df390 Merge branch 'setuptools-0.7.2' 2013-06-10 12:50:25 +09:00
Yamashita Yuu
4f8138c70a update setuptools for jython versions (distribute 0.6.45 -> setuptools 0.7.2)
https://bitbucket.org/pypa/setuptools/issue/14/installation-failed-on-jython
2013-06-10 12:48:05 +09:00
Yamashita Yuu
db3b4773bc update setuptools (0.7.1 -> 0.7.2) 2013-06-10 12:38:38 +09:00
Yamashita Yuu
fe04103e24 update comment about new setuptools and Jython 2013-06-05 14:58:51 +09:00
Yamashita Yuu
7777bb6d58 Merge branch 'new-setuptools' 2013-06-04 20:39:04 +09:00
Yamashita Yuu
e9bcd9e0bd replace distribute by new setuptools 2013-06-04 20:31:08 +09:00
Yamashita Yuu
2cc2c22094 add SSLv2 patch for 2.7 and 2.7.1 2013-06-04 20:18:16 +09:00
Yamashita Yuu
319000b448 pyenv-prefix returns wrong prefix if system is given in the middle of arguments. 2013-06-04 17:35:23 +09:00
Yamashita Yuu
b4ba76a15a Merge branch 'version-ext-plugin' 2013-06-01 15:27:04 +09:00
Yamashita Yuu
3ff0785fe7 prepare README and install.sh for pyenv-version-ext 2013-06-01 15:26:41 +09:00
Yamashita Yuu
1b7d3b0502 move pyenv-sh-{push,pop} into plugins since they aren't from rbenv 2013-06-01 15:14:18 +09:00
Yamashita Yuu
c43711a216 update distribute (0.6.43 -> 0.6.35) 2013-05-31 18:48:42 +09:00
Yamashita Yuu
3c86d811c8 Merge branch 'add-dev-versions' 2013-05-31 17:38:37 +09:00
Yamashita Yuu
d94c1d2143 add jython-*-dev 2013-05-31 17:38:18 +09:00
Yamashita Yuu
3fd475e1d5 add stackless-*-dev 2013-05-31 17:16:35 +09:00
Yamashita Yuu
309a6cd65e *EXPERIMENTAL* add pypy-py3k-dev 2013-05-31 14:33:22 +09:00
Yamashita Yuu
924f6dc76d add ${PYPY_OPTS} to specify pypy build options 2013-05-31 14:28:32 +09:00
Yamashita Yuu
56a9a7cebf improve error message of pypy 2013-05-31 14:28:08 +09:00
Yamashita Yuu
b8cbb18f7b add pypy-1.[789]-dev 2013-05-31 13:45:37 +09:00
Yamashita Yuu
27caf0ef3d add pypy-1.[567] 2013-05-31 13:39:58 +09:00
Yamashita Yuu
b203ccbe74 verify pypy binary after installation 2013-05-31 13:00:48 +09:00
Yamashita Yuu
cb962d5a74 Merge branch 'pypy_builder' 2013-05-29 23:32:13 +09:00
Yamashita Yuu
539800cc3b add pypy-*-src to build and install pypy from source 2013-05-29 23:30:22 +09:00
Yamashita Yuu
b77ae3e0b5 build and install pypy from source 2013-05-29 23:26:50 +09:00
Yamashita Yuu
dfc3f9e13c Set $PYENV_VERSION for existing installation of 3.4
CPython 3.4.x requires "python3.4" to be executable during build
if it is in "$PATH".
2013-05-29 19:36:49 +09:00
Yamashita Yuu
f120551ef3 add pypy-2.0.1 and pypy-2.0.2 2013-05-29 15:05:43 +09:00
Yamashita Yuu
b03a4cde78 add build_package_verify_py3{0,1,2,3,4} 2013-05-27 19:37:24 +09:00
Yamashita Yuu
71b2081a75 update distribute version (0.6.40 -> 0.6.43) 2013-05-27 16:58:19 +09:00
Yamashita Yuu
5fbc3ae3d5 add ssl patch for 3.1.3 and 3.2 (#22) 2013-05-23 12:07:19 +09:00
Yamashita Yuu
1ce37e53c7 Merge branch 'ruby-build-v20130518' 2013-05-21 16:40:21 +09:00
Yamashita Yuu
9ae12a7c22 add CPython development versions (2.[67]-dev, 3.[1234]-dev) 2013-05-21 16:38:11 +09:00
Yamashita Yuu
b3deef5e80 update base version of ruby-build (v20130518) 2013-05-21 11:43:01 +09:00
Yamashita Yuu
28317ecb34 update readme 2013-05-19 02:34:57 +09:00
Yamashita Yuu
78efa7613d setup verification for 2.7.5, 3.2.5 and 3.3.2 2013-05-18 20:52:37 +09:00
Yamashita Yuu
0bf26d8f1d setup download mirror site (#18, #20) 2013-05-17 23:14:57 +09:00
Yamashita Yuu
ac70eb701c fix error messages 2013-05-17 19:36:23 +09:00
Yamashita Yuu
c834f241a8 check native modules (e.g. ssl, bz2) if they were built 2013-05-17 16:49:27 +09:00
Yamashita, Yuu
aa39b392a9 Merge pull request #17 from keitaoouchi/support_2.7.5_3.2.5_3.3.2
Support new versions(2.7.5, 3.2.5, 3.3.2).
2013-05-16 07:36:07 -07:00
keitaoouchi
907ddb614d Support new versions(2.7.4, 3.2.5, 3.3.2). 2013-05-16 23:24:21 +09:00
Yamashita Yuu
dd0e3feae3 add install_zip 2013-05-16 22:39:15 +09:00
Yamashita Yuu
c24207428c remove useless definition of PYENV_VERSION_PATH 2013-05-16 18:21:37 +09:00
Yamashita Yuu
8b23026d6c add PACKAGE_PATCH_STRIP to support optional strip number of patch 2013-05-16 18:19:10 +09:00
Yamashita Yuu
cc9b7aa7dd update distribute version (0.6.38 -> 0.6.40) 2013-05-15 19:47:44 +09:00
Yamashita Yuu
318a41d723 add i786 2013-05-10 21:26:55 +09:00
Yamashita Yuu
5a52177d15 add pypy-2.0 and remove beta versions 2013-05-10 21:15:40 +09:00
Yamashita Yuu
2e8c43215d preserve original file suffix in place of hardcoded ".tar" 2013-05-10 20:26:42 +09:00
Yamashita Yuu
45966deb49 fix pypy installation on x86_64 with glibc which is not strictly equal to 2.13 or 2.15. 2013-05-10 20:23:25 +09:00
Yamashita Yuu
7aa644da5c ignore cache directory 2013-05-10 19:08:14 +09:00
Yamashita Yuu
56379532a6 add comments for Jython about the version of distribute and pip (#15) 2013-05-10 18:31:48 +09:00
Yamashita Yuu
9bf0755c81 update default distribute version (0.6.36 -> 0.6.38) 2013-05-09 14:58:47 +09:00
Yamashita Yuu
f01d1d1064 move patches into ./share to fix the install.sh 2013-05-09 00:11:52 +09:00
Yamashita Yuu
e9b0ecf021 remove needless declaration of LDFLAGS.
removing this not breaks build on latest Debian sid.
2013-05-08 23:56:33 +09:00
Yamashita Yuu
cbc6f38774 fix build problem of ssl modulle of CPython 3.0.1 2013-05-08 20:09:54 +09:00
Yamashita Yuu
e220b76c3e fix build problem of ssl module with recent OpenSSL
http://bugs.python.org/issue12012
2013-05-08 19:52:09 +09:00
Yamashita Yuu
8d1bf96267 add workaround for incompatible behaviour of svnversion (#14) 2013-05-08 19:23:03 +09:00
Yamashita Yuu
e49922064d Merge branch 'automated-patching' 2013-05-08 18:38:53 +09:00
Yamashita Yuu
95882fce68 remove useless patches 2013-05-08 18:38:34 +09:00
Yamashita Yuu
cc20ab3392 find appropriate patch for package automatically 2013-05-08 18:35:30 +09:00
Yamashita Yuu
fe50ed29ea bundle patches into python-build repository 2013-05-08 17:49:09 +09:00
Yamashita Yuu
e9db2caace fix completion problem on zsh 2013-05-01 13:14:22 +09:00
Yamashita Yuu
2d55aea467 add pypy-2.0-beta2 2013-04-30 01:53:30 +09:00
Yamashita Yuu
521c2c3e06 add jython versions; jython-2.5.4-rc1 and jython-2.7-beta1 2013-04-30 01:46:28 +09:00
Yamashita Yuu
0bc8d8252e fix typo to verify jar's checksum 2013-04-30 01:20:12 +09:00
Yamashita Yuu
80f4022891 Merge branch 'issue15' 2013-04-29 13:08:23 +09:00
Yamashita Yuu
998af2a3ab revert pip version (1.3.1 -> 1.2.1) to avoid AttributeError on Jython. (#15)
AttributeError: 'module' object has no attribute 'O_NOFOLLOW'
2013-04-27 21:05:34 +09:00
Yamashita Yuu
3b820e8c0c revert distribute version (0.6.36 -> 0.6.32) due to the installation
problem with Jython 2.5.[01] (#15)
2013-04-27 20:54:45 +09:00
Yamashita Yuu
8bc19e28e0 update distribute version (0.6.34 -> 0.6.36) 2013-04-25 21:42:59 +09:00
Yamashita Yuu
0d0516ad05 update default pip version (1.2.1 -> 1.3.1) 2013-04-25 21:40:13 +09:00
Yamashita Yuu
6997026064 import recent changes from ruby-build 20130408 2013-04-19 19:26:11 +09:00
Yamashita Yuu
dd1b6502c6 add README for python-build.
was copied from [ruby-build](https://github.com/sstephenson/ruby-build).
2013-04-19 18:48:45 +09:00
Yamashita, Yuu
d1013e82de Merge pull request #12 from f440/support_2.7.4_3.2.4_3.3.1
Support 2.7.4, 3.2.4, 3.3.1
2013-04-06 21:20:26 -07:00
f440
bb2d058167 Support 2.7.4, 3.2.4, 3.3.1 2013-04-07 12:40:12 +09:00
Yamashita, Yuu
6e58c43d8a Merge pull request #11 from draftcode/build-pydebug
Add an option to build a debug version of Python
2013-03-28 00:53:08 -07:00
draftcode
dce4eb636a Add a help string to describe the debug option 2013-03-28 16:41:07 +09:00
draftcode
c170255580 Preserve CONFIGURE_OPTS 2013-03-28 16:35:26 +09:00
draftcode
8bf0938e60 Add an option to build a debug version of Python 2013-03-28 12:04:58 +09:00
Yamashita, Yuu
aa831836e1 Merge pull request #10 from oza/patch-1
Update README.md
2013-03-07 22:29:10 -08:00
OZAWA Tsuyoshi
0eb1520707 Update README.md 2013-03-08 15:26:15 +09:00
Yamashita Yuu
606346761f s/python-virtualenv/pyenv-virtualenv/g in README.md 2013-03-06 12:48:13 +09:00
Yamashita Yuu
48e1488bc9 remove duplicated LICENSE from python-build. 2013-02-23 19:07:45 +09:00
Yamashita Yuu
0259b6adfb update copyright year 2013-02-23 19:06:58 +09:00
Yamashita Yuu
dbb1fb5a06 release 0.2.0 2013-02-18 12:39:35 +09:00
Yamashita Yuu
755c00e67c fix broken installation scripts for Jython and some of CPython.
replaced deprecated method calls of `fetch_url` by `http get`.
2013-02-07 17:48:23 +09:00
Yamashita Yuu
ad900ba436 fix some differences between ruby-build (refs #8) 2013-02-07 17:32:10 +09:00
Yamashita Yuu
ea7dc5f1e1 fix inverted result of checking version existence (refs #7) 2013-02-07 16:50:20 +09:00
Yamashita Yuu
be53bb8951 update README 2013-02-06 22:08:16 +09:00
Yamashita Yuu
167ff2a198 s/Ruby/Python/g; s/RBENV/PYENV/g 2013-02-06 16:05:29 +09:00
Yamashita Yuu
ee3c9bef5e fix typo; s/vesions/versions/
also this will fix https://github.com/yyuu/python-virtualenv/issues/1
2013-02-01 12:46:57 +09:00
Yamashita Yuu
6d307c6e11 import recent changes from ruby-build:
* verify checksum of downloaded archives.
* add PYTHON_BUILD_MIRROR_URL to use mirror site.
  But we don't have CloudFront setup as of now :-(
* rbenv 0.4.x style help messages
2013-01-31 13:27:39 +09:00
Yamashita Yuu
a0705cb86e fix shell syntax error. add missing `then'. 2013-01-28 12:53:18 +09:00
Yamashita Yuu
fca31c4307 import trivial changes from rbenv 0.4.0 2013-01-18 19:10:35 +09:00
Yamashita Yuu
684f7b7f21 add support for .python-version file to store local python version 2013-01-18 19:10:30 +09:00
Yamashita Yuu
da06998457 import rbenv-help from rbenv 0.4.0 2013-01-18 19:09:56 +09:00
Yamashita Yuu
f466679bd1 import pyenv---version from rbenv 2013-01-17 23:17:41 +09:00
Yamashita Yuu
4a217a0cd1 update distribute to 0.6.34 2013-01-11 13:41:40 +09:00
Yamashita Yuu
5b14236bac fix "system" handling 2012-12-19 23:58:39 +09:00
Yamashita Yuu
a16355fe33 fix wrong link to the README in the help message 2012-12-14 18:45:28 +09:00
Yamashita Yuu
c9575d7cb0 update distribute and pip versions
* distribute (0.6.28 -> 0.6.32)
* pip (1.1 -> 1.2.1)
2012-12-11 12:19:56 +09:00
Yamashita Yuu
252003f18e add pypy-2.0-beta1 2012-12-11 12:13:18 +09:00
Yamashita Yuu
7509b9fadf update feature list in README 2012-11-06 13:17:04 +09:00
Yamashita Yuu
f878896a77 ignore non files 2012-10-23 17:55:55 +09:00
Yamashita Yuu
d09af20897 0.1.3git 2012-10-23 15:25:18 +09:00
256 changed files with 60476 additions and 886 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
/cache
/shims
/version
/versions
/sources

6
.travis.yml Normal file
View File

@@ -0,0 +1,6 @@
install: git clone https://github.com/sstephenson/bats.git
script: bats/bin/bats --tap test plugins/python-build/test
language: c
notifications:
email:
on_success: never

120
CHANGELOG.md Normal file
View File

@@ -0,0 +1,120 @@
## Version History
#### 0.4.0-20140211
* python-build: Add new CPython release candidates; 3.3.4, 3.4.0b3
* python-build: Add [Anaconda](https://store.continuum.io/cshop/anaconda/) and [Miniconda](http://repo.continuum.io/miniconda/) binary distributions
* python-build: Display error if the wget does not support Server Name Indication (SNI) to avoid SSL verification error when downloading from https://pypi.python.org. (#60)
* python-build: Update default setuptools version (2.1 -> 2.2)
* python-build: Update default pip version (1.5.1 -> 1.5.2)
* python-build: Import recent changes from ruby-build v20140204
#### 0.4.0-20140123
* pyenv: Always append the directory at the top of the `$PATH` to return proper value for `sys.executable` (#98)
* pyenv: Unset `GREP_OPTIONS` to avoid issues of conflicting options (#101)
* python-build: Install `pip` with using `ensurepip` if available
* python-build: Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
* python-build: Import recent changes from ruby-build v20140110.1
* python-build: Import `bats` tests from ruby-build v20140110.1
#### 0.4.0-20140110.1
* python-build: Fix build error of CPython 2.x on the platform where the `gcc` is llvm-gcc.
#### 0.4.0-20140110
* pyenv: Reliably detect parent shell in `pyenv init` (#93)
* pyenv: Import recent changes from rbenv 0.4.0
* pyenv: Import `bats` tests from rbenv 0.4.0
* python-build: Add new CPython releases candidates; 3.4.0b2
* python-build: Add ruby-build style patching feature (#91)
* python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, 82)
* python-build: Update default setuptools version (2.0 -> 2.1)
* python-build: Update default pip version (1.4.1 -> 1.5)
* python-build: Activate friendly CPython during build if the one is not activated (8fa6b4a1847851919ad7857c6c42ed809a4d277b)
* python-build: Fix broken install.sh
* python-build: Import recent changes from ruby-build v20131225.1
* version-ext-compat: Removed from default plugin. Please use [pyenv-version-ext](https://github.com/yyuu/pyenv-version-ext) instead.
#### 0.4.0-20131217
* python-build: Fix broken build of CPython 3.3+ on Darwin
* python-build: Not build GNU Readline uselessly on Darwin
#### 0.4.0-20131216
* python-build: Add new CPython releases; 3.3.3 (#80)
* python-build: Add new CPython releases candidates; 3.4.0b1
* python-build: Add new PyPy releases; pypy-2.2.1, pypy-2.2.1-src
* python-build: Update default setuptools version (1.3.2 -> 2.0)
* python-build: Imported recent changes from ruby-build v20131211
* pyenv: Fix pyenv-prefix to trim "/bin" in `pyenv prefix system` (#88)
#### 0.4.0-20131116
* python-build: Add new CPython releases; 2.6.9, 2.7.6 (#76)
* python-build: Add new CPython release candidates; 3.3.3-rc1, 3.3.3-rc2
* python-build: Add new PyPy releases; pypy-2.2, pypy-2.2-src (#77)
* python-build: Update default setuptools version (1.1.6 -> 1.3.2)
* python-build: Imported recent changes from ruby-build v20131030
#### 0.4.0-20131023
* pyenv: Improved [fish shell](http://fishshell.com/) support
* python-build: Add new PyPy releases; pypy-2.1, pypy-2.1-src, pypy3-2.1-beta1, pypy3-2.1-beta1-src
* python-build: Add ancient versions; 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5
* python-build: Add alpha releases; 3.4.0a2, 3.4.0a3, 3.4.0a4
* python-build: Update default pip version (1.4 -> 1.4.1)
* python-build: Update default setuptools version (0.9.7 -> 1.1.6)
#### 0.4.0-20130726
* pyenv: Fix minor issue of variable scope in `pyenv versions`
* python-build: Update base version to ruby-build v20130628
* python-build: Use brew managed OpenSSL and GNU Readline if they are available
* python-build: Fix build of CPython 3.3+ on OS X (#29)
* python-build: Fix build of native modules of CPython 2.5 on OS X (#33)
* python-build: Fix build of CPython 2.6+ on openSUSE (#36)
* python-build: Add ancient versions; 2.4.2 and 2.4.6. The build might be broken. (#37)
* python-build: Update default pip version (1.3.1 -> 1.4)
* python-build: Update default setuptools version (0.7.2 -> 0.9.7)
#### 0.4.0-20130613
* pyenv: Changed versioning schema. There are two parts; the former is the base rbenv version, and the latter is the date of release.
* python-build: Add `--debug` option to build CPython with debug symbols. (#11)
* python-build: Add new CPython versions: 2.7.4, 2.7.5, 3.2.4, 3.2.5, 3.3.1, 3.3.2 (#12, #17)
* python-build: Add `svnversion` patch for old CPython versions (#14)
* python-build: Enable mirror by default for faster download (#20)
* python-build: Add `OPENSSL_NO_SSL2` patch for old CPython versions (#22)
* python-build: Install GNU Readline on Darwin if the system one is broken (#23)
* python-build: Bundle patches in `${PYTHON_BUILD_ROOT}/share/python-build/patches` and improve patching mechanism (`apply_patches`).
* python-build: Verify native extensions after building. (`build_package_verify_py*`)
* python-build: Add `install_hg` to install package from Mercurial repository
* python-build: Support building Jython and PyPy.
* python-build: Add new CPython development versions: 2.6-dev, 2.7-dev, 3.1-dev, 3.2-dev, 3.3-dev, 3.4-dev
* python-build: Add new Jython development versions: jython-2.5.4-rc1, jython-2.5-dev, jython-2.7-beta1, jython-dev
* python-build: Add new PyPy versions: pypy-1.5{,-src}, pypy-1.6, pypy-1.7, pypy-2.0{,-src}, pypy-2.0.1{,-src}, pypy-2.0.2{,-src}
* python-build: Add new PyPy development versions: pypy-1.7-dev, pypy-1.8-dev, pypy-1.9-dev, pypy-2.0-dev, pypy-dev, pypy-py3k-dev
* python-build: Add new Stackless development versions: stackless-2.7-dev, stackless-3.2-dev, stackless-3.3-dev, stackless-dev
* python-build: Update default pip version (1.2.1 -> 1.3.1)
* python-build: Update default setuptools version (0.6.34 (distribute) -> 0.7.2 ([new setuptools](https://bitbucket.org/pypa/setuptools)))
#### 0.2.0 (February 18, 2013)
* Import changes from rbenv 0.4.0.
#### 0.1.2 (October 23, 2012)
* Add push/pop for version stack management.
* Support multiple versions via environment variable.
* Now GCC is not a requirement to build CPython and Stackless.
#### 0.1.1 (September 3, 2012)
* Support multiple versions of Python at a time.
#### 0.1.0 (August 31, 2012)
* Initial public release.

View File

@@ -1,5 +1,5 @@
Copyright (c) 2011 Sam Stephenson
Copyright (c) 2012 Yamashita, Yuu
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

470
README.md
View File

@@ -1,5 +1,7 @@
# Simple Python Version Management: pyenv
[![Build Status](https://travis-ci.org/yyuu/pyenv.png)](https://travis-ci.org/yyuu/pyenv)
pyenv lets you easily switch between multiple versions of Python. It's
simple, unobtrusive, and follows the UNIX tradition of single-purpose
tools that do one thing well.
@@ -20,101 +22,178 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
### In contrast with pythonbrew and pythonz, pyenv _does not..._
* **Depending on Python itself.** pyenv was made from pure shell scripts.
* **Depend on Python itself.** pyenv was made from pure shell scripts.
There is no bootstrap problem of Python.
* **Need to be loaded into your shell.** Instead, pyenv's shim
approach works by adding a directory to your `$PATH`.
* **Have a configuration file.** There's nothing to configure except
which version of Python you want to use.
* **Manage virtualenv.** Of course, you can create [virtualenv](http://pypi.python.org/pypi/virtualenv)
yourself, or [python-virtualenv](https://github.com/yyuu/python-virtualenv)
yourself, or [pyenv-virtualenv](https://github.com/yyuu/pyenv-virtualenv)
to automate the process.
* **Prompt you with warnings when you switch to a project.** Instead
of executing arbitrary code, pyenv reads just the version name
from each project. There's nothing to "trust."
## Table of Contents
* [1 How It Works](#section_1)
* [2 Installation](#section_2)
* [2.1 Basic GitHub Checkout](#section_2.1)
* [2.1.1 Upgrading](#section_2.1.1)
* [2.2 Neckbeard Configuration](#section_2.3)
* [3 Usage](#section_3)
* [3.1 pyenv global](#section_3.1)
* [3.2 pyenv local](#section_3.2)
* [3.3 pyenv shell](#section_3.3)
* [3.4 pyenv versions](#section_3.4)
* [3.5 pyenv version](#section_3.5)
* [3.6 pyenv rehash](#section_3.6)
* [3.7 pyenv which](#section_3.7)
* [3.8 pyenv whence](#section_3.8)
* [4 Development](#section_4)
* [4.1 Version History](#section_4.1)
* [4.2 License](#section_4.2)
* [How It Works](#how-it-works)
* [Understanding PATH](#understanding-path)
* [Understanding Shims](#understanding-shims)
* [Choosing the Python Version](#choosing-the-python-version)
* [Locating the Python Installation](#locating-the-python-installation)
* [Installation](#installation)
* [Basic GitHub Checkout](#basic-github-checkout)
* [Upgrading](#upgrading)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Neckbeard Configuration](#neckbeard-configuration)
* [Uninstalling Python Versions](#uninstalling-python-versions)
* [Command Reference](#command-reference)
* [pyenv local](#pyenv-local)
* [pyenv global](#pyenv-global)
* [pyenv shell](#pyenv-shell)
* [pyenv versions](#pyenv-versions)
* [pyenv version](#pyenv-version)
* [pyenv rehash](#pyenv-rehash)
* [pyenv which](#pyenv-which)
* [pyenv whence](#pyenv-whence)
* [Development](#development)
* [Version History](#version-history)
* [License](#license)
## <a name="section_1"></a> 1 How It Works
## How It Works
pyenv operates on the per-user directory `~/.pyenv`. Version names in
pyenv correspond to subdirectories of `~/.pyenv/versions`. For
example, you might have `~/.pyenv/versions/2.7.3` and
`~/.pyenv/versions/2.7.3`.
At a high level, pyenv intercepts Python commands using shim
executables injected into your `PATH`, determines which Python version
has been specified by your application, and passes your commands along
to the correct Python installation.
Each version is a working tree with its own binaries, like
`~/.pyenv/versions/2.7.3/bin/python2.7` and
`~/.pyenv/versions/3.2.3/bin/python3.2`. pyenv makes _shim binaries_
for every such binary across all installed versions of Python.
### Understanding PATH
These shims are simple wrapper scripts that live in `~/.pyenv/shims`
and detect which Python version you want to use. They insert the
directory for the selected version at the beginning of your `$PATH`
and then execute the corresponding binary.
When you run a command like `python` or `pip`, your operating system
searches through a list of directories to find an executable file with
that name. This list of directories lives in an environment variable
called `PATH`, with each directory in the list separated by a colon:
Because of the simplicity of the shim approach, all you need to use
pyenv is `~/.pyenv/shims` in your `$PATH`.
/usr/local/bin:/usr/bin:/bin
## <a name="section_2"></a> 2 Installation
Directories in `PATH` are searched from left to right, so a matching
executable in a directory at the beginning of the list takes
precedence over another one at the end. In this example, the
`/usr/local/bin` directory will be searched first, then `/usr/bin`,
then `/bin`.
### <a name="section_2.1"></a> 2.1 Basic GitHub Checkout
### Understanding Shims
pyenv works by inserting a directory of _shims_ at the front of your
`PATH`:
~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin
Through a process called _rehashing_, pyenv maintains shims in that
directory to match every Python command across every installed version
of Python—`python`, `pip`, and so on.
Shims are lightweight executables that simply pass your command along
to pyenv. So with pyenv installed, when you run, say, `pip`, your
operating system will do the following:
* Search your `PATH` for an executable file named `pip`
* Find the pyenv shim named `pip` at the beginning of your `PATH`
* Run the shim named `pip`, which in turn passes the command along to
pyenv
### Choosing the Python Version
When you execute a shim, pyenv determines which Python version to use by
reading it from the following sources, in this order:
1. The `PYENV_VERSION` environment variable, if specified. You can use
the [`pyenv shell`](#pyenv-shell) command to set this environment
variable in your current shell session.
2. The application-specific `.python-version` file in the current
directory, if present. You can modify the current directory's
`.python-version` file with the [`pyenv local`](#pyenv-local)
command.
3. The first `.python-version` file found by searching each parent
directory until reaching the root of your filesystem, if any.
4. The global `~/.pyenv/version` file. You can modify this file using
the [`pyenv global`](#pyenv-global) command. If the global version
file is not present, pyenv assumes you want to use the "system"
Python—i.e. whatever version would be run if pyenv weren't in your
path.
### Locating the Python Installation
Once pyenv has determined which version of Python your application has
specified, it passes the command along to the corresponding Python
installation.
Each Python version is installed into its own directory under
`~/.pyenv/versions`. For example, you might have these versions
installed:
* `~/.pyenv/versions/2.7.6/`
* `~/.pyenv/versions/3.3.3/`
* `~/.pyenv/versions/pypy-2.2.1/`
Version names to pyenv are simply the names of the directories in
`~/.pyenv/versions`.
## Installation
If you're on Mac OS X, consider
[installing with Homebrew](#homebrew-on-mac-os-x).
### Basic GitHub Checkout
This will get you going with the latest version of pyenv and make it
easy to fork and contribute any changes back upstream.
1. Check out pyenv into `~/.pyenv`.
1. Check out pyenv where you want it installed. A good place to choose is
`$HOME/.pyenv` but you may install it somewhere else.
$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv
2. Add `~/.pyenv/bin` to your `$PATH` for access to the `pyenv`
command-line utility.
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
2. Define environment variable `PYENV_ROOT` to point to the path where
pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access
to the `pyenv` command-line utility.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
3. Add pyenv init to your shell to enable shims and autocompletion.
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
4. Restart your shell so the path changes take effect. You can now
begin using pyenv.
$ exec $SHELL
5. Install Python versions into `~/.pyenv/versions`. For example, to
install Python 2.7.3, download and unpack the source, then run:
5. Install Python versions into `$PYENV_ROOT/versions`. For example, to
install Python 2.7.6, download and unpack the source, then run:
$ pyenv install 2.7.3
$ pyenv install 2.7.6
**NOTE** If you need to pass configure option to build, please use
```CONFIGURE_OPTS``` environment variable.
**NOTE** If you are having trouble installing a python version please visit the wiki page about [Common Build Problems](https://github.com/yyuu/pyenv/wiki/Common-build-problems)
6. Rebuild the shim binaries. You should do this any time you install
a new Python binary (for example, when installing a new Python version,
or when installing a gem that provides a binary).
or when installing a package that provides a binary).
$ pyenv rehash
#### <a name="section_2.1.1"></a> 2.1.1 Upgrading
#### Upgrading
If you've installed pyenv using the instructions above, you can
upgrade your installation at any time using git.
@@ -133,7 +212,24 @@ tag:
v0.1.0
$ git checkout v0.1.0
### <a name="section_2.2"></a> 2.2 Neckbeard Configuration
### Homebrew on Mac OS X
You can also install pyenv using the
[Homebrew](http://brew.sh) package manager on Mac OS
X.
~~~
$ brew update
$ brew install pyenv
~~~
To later update these installs, use `upgrade` instead of `install`.
Afterwards you'll still need to add `eval "$(pyenv init -)"` to your
profile as stated in the caveats. You'll only ever have to do this
once.
### Neckbeard Configuration
Skip this section unless you must know what every line in your shell
profile is doing.
@@ -165,19 +261,85 @@ opposed to this idea. Here's what `pyenv init` actually does:
Run `pyenv init -` for yourself to see exactly what happens under the
hood.
## <a name="section_3"></a> 3 Usage
### Uninstalling Python Versions
As time goes on, Python versions you install will accumulate in your
`~/.pyenv/versions` directory.
To remove old Python versions, `pyenv uninstall` command to automate
the removal process.
Or, simply `rm -rf` the directory of the
version you want to remove. You can find the directory of a particular
Python version with the `pyenv prefix` command, e.g. `pyenv prefix
2.6.8`.
## Command Reference
Like `git`, the `pyenv` command delegates to subcommands based on its
first argument. The most common subcommands are:
### <a name="section_3.1"></a> 3.1 pyenv global
### pyenv local
Sets a local application-specific Python version by writing the version
name to a `.python-version` file in the current directory. This version
overrides the global version, and can be overridden itself by setting
the `PYENV_VERSION` environment variable or with the `pyenv shell`
command.
$ pyenv local 2.7.6
When run without a version number, `pyenv local` reports the currently
configured local version. You can also unset the local version:
$ pyenv local --unset
Previous versions of pyenv stored local version specifications in a
file named `.pyenv-version`. For backwards compatibility, pyenv will
read a local version specified in an `.pyenv-version` file, but a
`.python-version` file in the same directory will take precedence.
#### pyenv local (advanced)
You can specify multiple versions as local Python at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv local 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv local 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
### pyenv global
Sets the global version of Python to be used in all shells by writing
the version name to the `~/.pyenv/version` file. This version can be
overridden by a per-project `.pyenv-version` file, or by setting the
`PYENV_VERSION` environment variable.
overridden by an application-specific `.python-version` file, or by
setting the `PYENV_VERSION` environment variable.
$ pyenv global 2.7.3
$ pyenv global 2.7.6
The special version name `system` tells pyenv to use the system Python
(detected by searching your `$PATH`).
@@ -185,84 +347,46 @@ The special version name `system` tells pyenv to use the system Python
When run without a version number, `pyenv global` reports the
currently configured global version.
And also, you can specify multiple versions as global Python. Commands
within these Python versions are searched by specified order.
#### pyenv global (advanced)
$ pyenv global 2.7.3 3.2.3
$ pyenv global
2.7.3
3.2.3
$ pyenv which python2.7
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
$ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python
You can specify multiple versions as global Python at once.
You can manage your version stack by `pyenv push` and `pyenv pop`.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv global
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv global
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
$ pyenv global 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
### <a name="section_3.2"></a> 3.2 pyenv local
or, if you prefer 3.3.3 over 2.7.6,
Sets a local per-project Python version by writing the version name to
an `.pyenv-version` file in the current directory. This version
overrides the global, and can be overridden itself by setting the
`PYENV_VERSION` environment variable or with the `pyenv shell`
command.
$ pyenv global 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
$ pyenv local 2.7.3
When run without a version number, `pyenv local` reports the currently
configured local version. You can also unset the local version:
$ pyenv local --unset
And also, you can specify multiple versions as local Python. Commands
within these Python versions are searched by specified order.
$ pyenv local 2.7.3 3.2.3
$ pyenv local
2.7.3
3.2.3
$ pyenv which python2.7
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
$ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python
You can manage your version stack by `pyenv push` and `pyenv pop`.
$ pyenv local
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv local
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
### <a name="section_3.3"></a> 3.3 pyenv shell
### pyenv shell
Sets a shell-specific Python version by setting the `PYENV_VERSION`
environment variable in your shell. This version overrides both
project-specific versions and the global version.
environment variable in your shell. This version overrides
application-specific versions and the global version.
$ pyenv shell pypy-1.9
$ pyenv shell pypy-2.2.1
When run without a version number, `pyenv shell` reports the current
value of `PYENV_VERSION`. You can also unset the shell version:
@@ -274,19 +398,42 @@ the installation instructions) in order to use this command. If you
prefer not to use shell integration, you may simply set the
`PYENV_VERSION` variable yourself:
$ export PYENV_VERSION=pypy-1.9
$ export PYENV_VERSION=pypy-2.2.1
And also, you can specify multiple versions via `PYENV_VERSION`
environment variable in your shell.
#### pyenv shell (advanced)
$ pyenv shell pypy-1.9 2.7.3
$ echo $PYENV_VERSION
pypy-1.9:2.7.3
$ pyenv version
pypy-1.9 (set by PYENV_VERSION environment variable)
2.7.3 (set by PYENV_VERSION environment variable)
You can specify multiple versions via `PYENV_VERSION` at once.
### <a name="section_3.4"></a> 3.4 pyenv versions
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv shell 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv shell 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
### pyenv versions
Lists all Python versions known to pyenv, and shows an asterisk next to
the currently active version.
@@ -294,45 +441,45 @@ the currently active version.
$ pyenv versions
2.5.6
2.6.8
* 2.7.3 (set by /home/yyuu/.pyenv/version)
3.2.3
* 2.7.6 (set by /home/yyuu/.pyenv/version)
3.3.3
jython-2.5.3
pypy-1.9
pypy-2.2.1
### <a name="section_3.5"></a> 3.5 pyenv version
### pyenv version
Displays the currently active Python version, along with information on
how it was set.
$ pyenv version
2.7.3 (set by /home/yyuu/.pyenv/version)
2.7.6 (set by /home/yyuu/.pyenv/version)
### <a name="section_3.6"></a> 3.6 pyenv rehash
### pyenv rehash
Installs shims for all Python binaries known to pyenv (i.e.,
`~/.pyenv/versions/*/bin/*`). Run this command after you install a new
version of Python, or install a gem that provides binaries.
version of Python, or install a package that provides binaries.
$ pyenv rehash
### <a name="section_3.7"></a> 3.7 pyenv which
### pyenv which
Displays the full path to the binary that pyenv will execute when you
run the given command.
Displays the full path to the executable that pyenv will invoke when
you run the given command.
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
$ pyenv which python3.3
/home/yyuu/.pyenv/versions/3.3.3/bin/python3.3
### <a name="section_3.8"></a> 3.8 pyenv whence
### pyenv whence
Lists all Python versions with the given command installed.
$ pyenv whence 2to3
2.6.8
2.7.3
3.2.3
2.7.6
3.3.3
## <a name="section_4"></a> 4 Development
## Development
The pyenv source code is [hosted on
GitHub](https://github.com/yyuu/pyenv). It's clean, modular,
@@ -341,28 +488,17 @@ and easy to understand, even if you're not a shell hacker.
Please feel free to submit pull requests and file bugs on the [issue
tracker](https://github.com/yyuu/pyenv/issues).
### <a name="section_4.1"></a> 4.1 Version History
### Version History
**0.1.2** (October 23, 2012)
See CHANGELOG.md.
* Add push/pop for version stack management.
* Support multiple versions via environment variable.
* Now GCC is not a requirement to build CPython and Stackless.
**0.1.1** (September 3, 2012)
* Support multiple versions of Python at a time.
**0.1.0** (August 31, 2012)
* Initial public release.
### <a name="section_4.2"></a> 4.2 License
### License
(The MIT license)
* Copyright (c) 2011 Sam Stephenson
* Copyright (c) 2012 Yamashita, Yuu
* Copyright (c) 2013 Yamashita, Yuu
* Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@@ -13,4 +13,11 @@
set -e
export PYENV_DIR="${1%/*}"
[ -n "$PYENV_SILENCE_WARNINGS" ] || {
echo "pyenv: \`python-local-exec' is deprecated and will be removed in the next release."
echo " To upgrade: https://github.com/yyuu/pyenv/wiki/python-local-exec"
echo
} >&2
exec python "$@"

View File

@@ -5,8 +5,10 @@ _pyenv() {
if [ "$COMP_CWORD" -eq 1 ]; then
COMPREPLY=( $(compgen -W "$(pyenv commands)" -- "$word") )
else
local command="${COMP_WORDS[1]}"
local completions="$(pyenv completions "$command")"
local words=("${COMP_WORDS[@]}")
unset words[0]
unset words[$COMP_CWORD]
local completions=$(pyenv completions "${words[@]}")
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
fi
}

22
completions/pyenv.fish Normal file
View File

@@ -0,0 +1,22 @@
function __fish_pyenv_needs_command
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'pyenv' ]
return 0
end
return 1
end
function __fish_pyenv_using_command
set cmd (commandline -opc)
if [ (count $cmd) -gt 1 ]
if [ $argv[1] = $cmd[2] ]
return 0
end
end
return 1
end
complete -f -c pyenv -n '__fish_pyenv_needs_command' -a '(pyenv commands)'
for cmd in (pyenv commands)
complete -f -c pyenv -n "__fish_pyenv_using_command $cmd" -a "(pyenv completions $cmd)"
end

View File

@@ -5,14 +5,13 @@ fi
compctl -K _pyenv pyenv
_pyenv() {
local word words completions
local words completions
read -cA words
word="${words[2]}"
if [ "${#words}" -eq 2 ]; then
completions="$(pyenv commands)"
else
completions="$(pyenv completions "${word}")"
completions="$(pyenv completions "${words[2,-2]}")"
fi
reply=("${(ps:\n:)completions}")

View File

@@ -1,9 +1,27 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
export -n CDPATH
if [ "$1" = "--debug" ]; then
export PYENV_DEBUG=1
shift
fi
if [ -n "$PYENV_DEBUG" ]; then
export PS4='+ [${BASH_SOURCE##*/}:${LINENO}] '
set -x
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
unset GREP_OPTIONS
resolve_link() {
$(type -p greadlink readlink | head -1) "$1"
$READLINK "$1"
}
abs_dirname() {
@@ -60,7 +78,10 @@ shopt -u nullglob
command="$1"
case "$command" in
"" | "-h" | "--help" )
echo -e "pyenv 0.1.2\n$(pyenv-help)" >&2
echo -e "$(pyenv---version)\n$(pyenv-help)" >&2
;;
"-v" )
exec pyenv---version
;;
* )
command_path="$(command -v "pyenv-$command" || true)"

22
libexec/pyenv---version Executable file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Summary: Display the version of pyenv
#
# Displays the version number of this pyenv release, including the
# current revision from git, if available.
#
# The format of the git revision is:
# <version>-<num_commits>-<git_sha>
# where `num_commits` is the number of commits since `version` was
# tagged.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
version="0.4.0-20140211"
if cd "$PYENV_ROOT" 2>/dev/null; then
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
git_revision="${git_revision#v}"
fi
echo "pyenv ${git_revision:-$version}"

View File

@@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Summary: List all available pyenv commands
# Usage: pyenv commands [--sh|--no-sh]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -17,9 +20,11 @@ elif [ "$1" = "--no-sh" ]; then
shift
fi
IFS=: paths=($PATH)
shopt -s nullglob
{ for path in ${PATH//:/$'\n'}; do
{ for path in "${paths[@]}"; do
for command in "${path}/pyenv-"*; do
command="${command##*pyenv-}"
if [ -n "$sh" ]; then

View File

@@ -1,15 +1,17 @@
#!/usr/bin/env bash
# Usage: pyenv completions <command> [arg1 arg2...]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
echo "usage: pyenv completions COMMAND [arg1 arg2...]" >&2
pyenv-help --usage completions >&2
exit 1
fi
COMMAND_PATH="$(command -v "pyenv-$COMMAND" || command -v "pyenv-sh-$COMMAND")"
if grep -i "^# provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
if grep -iE "^([#%]|--|//) provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

View File

@@ -1,4 +1,18 @@
#!/usr/bin/env bash
#
# Summary: Run an executable with the selected Python version
#
# Usage: pyenv exec <command> [arg1 arg2...]
#
# Runs an executable by first preparing PATH so that the selected Python
# version's `bin' directory is at the front.
#
# For example, if the currently selected Python version is 2.7.6:
# pyenv exec pip install -rrequirements.txt
#
# is equivalent to:
# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -rrequirements.txt
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -7,19 +21,27 @@ if [ "$1" = "--complete" ]; then
exec pyenv shims --short
fi
PYENV_VERSION="$(pyenv-version-name)"
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
echo "usage: pyenv exec COMMAND [arg1 arg2...]" >&2
pyenv-help --usage exec >&2
exit 1
fi
export PYENV_VERSION
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
for script in $(pyenv-hooks exec); do
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks exec`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
shift 1
# CPython's `sys.executable` requires the `PYENV_BIN_PATH` to be at the top of the `PATH`.
# https://github.com/yyuu/pyenv/issues/98
export PATH="${PYENV_BIN_PATH}:${PATH}"
exec -a "$PYENV_COMMAND" "$PYENV_COMMAND_PATH" "$@"

View File

@@ -1,4 +1,17 @@
#!/usr/bin/env bash
#
# Summary: Set or show the global Python version
#
# Usage: pyenv global <version>
#
# Sets the global Python version. You can override the global version at
# any time by setting a directory-specific version with `pyenv local'
# or by setting the `PYENV_VERSION' environment variable.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -14,12 +27,14 @@ PYENV_VERSION_FILE="${PYENV_ROOT}/version"
if [ -n "$versions" ]; then
pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}"
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read "$PYENV_VERSION_FILE" ||
pyenv-version-file-read "${PYENV_ROOT}/global" ||
pyenv-version-file-read "${PYENV_ROOT}/default" ||
echo system
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done

View File

@@ -1,99 +1,162 @@
#!/usr/bin/env bash
#
# Summary: Display help for a command
#
# Usage: pyenv help [--usage] COMMAND
#
# Parses and displays help contents from a command's source file.
#
# A command is considered documented if it starts with a comment block
# that has a `Summary:' or `Usage:' section. Usage instructions can
# span multiple lines as long as subsequent lines are indented.
# The remainder of the comment block is displayed as extended
# documentation.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
print_set_version() {
echo "<version> should be a string matching a Python version known by pyenv."
local versions="$(pyenv-versions --bare)"
if [ -z "$versions" ]; then
echo "There are currently no Python versions installed for pyenv."
else
echo "The currently installed Python versions are:"
echo "$versions" | sed 's/^/ /'
fi
echo
echo "The special version string 'system' will use your default system Python"
command_path() {
local command="$1"
command -v pyenv-"$command" || command -v pyenv-sh-"$command" || true
}
case "$1" in
"") echo "usage: pyenv <command> [<args>]
extract_initial_comment_block() {
sed -ne "
/^#/ !{
q
}
Some useful pyenv commands are:
commands List all pyenv commands
rehash Rehash pyenv shims (run this after installing binaries)
global Set or show the global Python version
local Set or show the local directory-specific Python version
shell Set or show the shell-specific Python version
version Show the current Python version
versions List all Python versions known by pyenv
which Show the full path for the given Python command
whence List all Python versions with the given command
s/^#$/# /
See 'pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/sstephenson/pyenv#readme"
;;
commands) echo "usage: pyenv commands
pyenv commands --sh
pyenv commands --no-sh
/^# / {
s/^# //
p
}
"
}
List all pyenv commands."
;;
global) echo "usage: pyenv global <version>
collect_documentation() {
awk '
/^Summary:/ {
summary = substr($0, 10)
next
}
Sets the global Python version. You can override the global version at
any time by setting a directory-specific version with \`pyenv local'
or by setting the PYENV_VERSION environment variable.
/^Usage:/ {
reading_usage = 1
usage = usage "\n" $0
next
}
$(print_set_version)"
;;
local) echo "usage: pyenv local <version>
pyenv local --unset
/^( *$| )/ && reading_usage {
usage = usage "\n" $0
next
}
Sets the local directory-specific Python version by writing the version
name to a file named '.pyenv-version'.
{
reading_usage = 0
help = help "\n" $0
}
When you run a Python command, pyenv will look for an '.pyenv-version'
file in the current directory and each parent directory. If no such
file is found in the tree, pyenv will use the global Python version
specified with \`pyenv global', or the version specified in the
PYENV_VERSION environment variable.
function escape(str) {
gsub(/[`\\$"]/, "\\\\&", str)
return str
}
$(print_set_version)"
;;
shell) echo "usage: pyenv shell <version>
pyenv shell --unset
function trim(str) {
sub(/^\n*/, "", str)
sub(/\n*$/, "", str)
return str
}
Sets a shell-specific Python version by setting the 'PYENV_VERSION'
environment variable in your shell. This version overrides both
project-specific versions and the global version.
END {
if (usage || summary) {
print "summary=\"" escape(summary) "\""
print "usage=\"" escape(trim(usage)) "\""
print "help=\"" escape(trim(help)) "\""
}
}
'
}
$(print_set_version)"
;;
versions) echo "usage: pyenv versions
pyenv versions --bare
Lists all Python versions known by pyenv."
;;
which) echo "usage: pyenv which <command>
Displays the full path to the binary that pyenv will execute when you
run the given command."
;;
whence) echo "usage: pyenv whence <command>
Lists all Python versions with the given command installed."
;;
*)
command_path="$(command -v "pyenv-$1" || true)"
if [ -n "$command_path" ]; then
echo "Sorry, the \`$1' command isn't documented yet."
echo
echo "You can view the command's source here:"
echo "$command_path"
echo
else
echo "pyenv: no such command \`$1'"
documentation_for() {
local filename="$(command_path "$1")"
if [ -n "$filename" ]; then
extract_initial_comment_block < "$filename" | collect_documentation
fi
esac
}
print_summary() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
if [ -n "$summary" ]; then
printf " %-9s %s\n" "$command" "$summary"
fi
}
print_summaries() {
for command; do
print_summary "$command"
done
}
print_help() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
[ -n "$help" ] || help="$summary"
if [ -n "$usage" -o -n "$summary" ]; then
if [ -n "$usage" ]; then
echo "$usage"
else
echo "Usage: pyenv ${command}"
fi
if [ -n "$help" ]; then
echo
echo "$help"
echo
fi
else
echo "Sorry, this command isn't documented yet." >&2
return 1
fi
}
print_usage() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
[ -z "$usage" ] || echo "$usage"
}
unset usage
if [ "$1" = "--usage" ]; then
usage="1"
shift
fi
if [ -z "$1" ] || [ "$1" == "pyenv" ]; then
echo "Usage: pyenv <command> [<args>]"
[ -z "$usage" ] || exit
echo
echo "Some useful pyenv commands are:"
print_summaries commands local global shell install uninstall rehash version versions which whence
echo
echo "See \`pyenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/yyuu/pyenv#readme"
else
command="$1"
if [ -n "$(command_path "$command")" ]; then
if [ -n "$usage" ]; then
print_usage "$command"
else
print_help "$command"
fi
else
echo "pyenv: no such command \`$command'" >&2
exit 1
fi
fi

View File

@@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Summary: List hook scripts for a given pyenv command
# Usage: pyenv hooks <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -12,17 +15,22 @@ fi
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
echo "usage: pyenv hooks COMMAND" >&2
pyenv-help --usage hooks >&2
exit 1
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
$READLINK "$1"
}
realpath() {
local cwd="$(pwd)"
local base="$(basename $1)"
local path="$1"
while [ -n "$path" ]; do
@@ -31,13 +39,15 @@ realpath() {
path="$(resolve_link "$name" || true)"
done
echo "$(pwd)/$base"
echo "$(pwd)/$name"
cd "$cwd"
}
IFS=: hook_paths=($PYENV_HOOK_PATH)
shopt -s nullglob
for path in ${PYENV_HOOK_PATH//:/$'\n'}; do
for script in $path/"$PYENV_COMMAND"/*.bash; do
for path in "${hook_paths[@]}"; do
for script in "$path/$PYENV_COMMAND"/*.bash; do
echo $(realpath $script)
done
done

View File

@@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Summary: Configure the shell environment for pyenv
# Usage: eval "$(pyenv init - [--no-rehash] [<shell>])"
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -8,7 +11,7 @@ for args in "$@"
do
if [ "$args" = "-" ]; then
print=1
shift
shift
fi
if [ "$args" = "--no-rehash" ]; then
@@ -19,11 +22,20 @@ done
shell="$1"
if [ -z "$shell" ]; then
shell="$(basename "$SHELL")"
shell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)"
shell="${shell##-}"
shell="${shell%% *}"
shell="$(basename "${shell:-$SHELL}")"
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
$READLINK "$1"
}
abs_dirname() {
@@ -53,6 +65,9 @@ if [ -z "$print" ]; then
ksh )
profile='~/.profile'
;;
fish )
profile='~/.config/fish/config.fish'
;;
* )
profile='your profile'
;;
@@ -61,7 +76,14 @@ if [ -z "$print" ]; then
{ echo "# Load pyenv automatically by adding"
echo "# the following to ${profile}:"
echo
echo 'eval "$(pyenv init -)"'
case "$shell" in
fish )
echo 'status --is-interactive; and . (pyenv init -|psub)'
;;
* )
echo 'eval "$(pyenv init -)"'
;;
esac
echo
} >&2
@@ -70,30 +92,80 @@ fi
mkdir -p "${PYENV_ROOT}/"{shims,versions}
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
if [[ ":${PATH}:" != *:"${PYENV_ROOT}/shims":* ]]; then
case "$shell" in
fish )
echo "setenv PATH '${PYENV_ROOT}/shims' \$PATH"
;;
* )
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
;;
esac
fi
case "$shell" in
bash | zsh )
echo "source \"$root/completions/pyenv.${shell}\""
;;
fish )
echo "setenv PYENV_SHELL $shell"
;;
* )
echo "export PYENV_SHELL=$shell"
;;
esac
completion="${root}/completions/pyenv.${shell}"
if [ -r "$completion" ]; then
case "$shell" in
fish ) echo ". '$completion'" ;;
* ) echo "source '$completion'" ;;
esac
fi
if [ -z "$no_rehash" ]; then
echo 'pyenv rehash 2>/dev/null'
fi
commands=(`pyenv commands --sh`)
commands=(`pyenv-commands --sh`)
case "$shell" in
fish )
cat <<EOS
function pyenv
set command \$argv[1]
set -e argv[1]
switch "\$command"
case ${commands[*]}
eval (pyenv "sh-\$command" \$argv)
case '*'
command pyenv "\$command" \$argv
end
end
EOS
exit 0
;;
ksh )
cat <<EOS
function pyenv {
typeset command
EOS
;;
* )
cat <<EOS
pyenv() {
local command
EOS
;;
esac
IFS="|"
cat <<EOS
pyenv() {
local command="\$1"
command="\$1"
if [ "\$#" -gt 0 ]; then
shift
fi
case "\$command" in
${commands[*]})
eval \`pyenv "sh-\$command" "\$@"\`;;
eval "\`pyenv "sh-\$command" "\$@"\`";;
*)
command pyenv "\$command" "\$@";;
esac

View File

@@ -1,4 +1,28 @@
#!/usr/bin/env bash
#
# Summary: Set or show the local application-specific Python version
#
# Usage: pyenv local <version>
# pyenv local --unset
#
# Sets the local application-specific Python version by writing the
# version name to a file named `.python-version'.
#
# When you run a Python command, pyenv will look for a `.python-version'
# file in the current directory and each parent directory. If no such
# file is found in the tree, pyenv will use the global Python version
# specified with `pyenv global'. A version specified with the
# `PYENV_VERSION' environment variable takes precedence over local
# and global versions.
#
# For backwards compatibility, pyenv will also read version
# specifications from `.pyenv-version' files, but a `.python-version'
# file in the same directory takes precedence.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -10,19 +34,28 @@ if [ "$1" = "--complete" ]; then
fi
versions=($@)
PYENV_VERSION_FILE=".pyenv-version"
if [ "$versions" = "--unset" ]; then
rm -f "$PYENV_VERSION_FILE"
rm -f .python-version .pyenv-version
elif [ -n "$versions" ]; then
pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}"
previous_file="$(PYENV_VERSION= pyenv-version-origin || true)"
pyenv-version-file-write .python-version "${versions[@]}"
if [ "$previous_file" -ef .pyenv-version ]; then
rm -f .pyenv-version
{ echo "pyenv: removed existing \`.pyenv-version' file and migrated"
echo " local version specification to \`.python-version' file"
} >&2
fi
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read "$PYENV_VERSION_FILE" ||
pyenv-version-file-read .python-version ||
pyenv-version-file-read .pyenv-version ||
{ echo "pyenv: no local version configured for this directory"
exit 1
} >&2
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done

View File

@@ -1,4 +1,11 @@
#!/usr/bin/env bash
# Summary: Display prefix for a Python version
# Usage: pyenv prefix [<version>]
#
# Displays the directory where a Python version is installed. If no
# version is given, `pyenv prefix' displays the location of the
# currently selected version.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -9,28 +16,41 @@ if [ "$1" = "--complete" ]; then
fi
if [ -n "$1" ]; then
versions=($@)
IFS=: PYENV_VERSION="${versions[*]}"
export PYENV_VERSION
else
IFS=: versions=($(pyenv-version-name))
fi
if [ "$versions" = "system" ]; then
PYTHON_PATH="$(pyenv-which python)"
echo "${PYTHON_PATH%/*}"
exit
OLDIFS="$IFS"
{ IFS=:
export PYENV_VERSION="$*"
}
IFS="$OLDIFS"
elif [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION="$(pyenv-version-name)"
fi
PYENV_PREFIX_PATHS=()
for version in "${versions[@]}"; do
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
if [ -d "$PYENV_PREFIX_PATH" ]; then
PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH")
else
echo "pyenv: version \`${version}' not installed" >&2
exit 1
fi
done
OLDIFS="$IFS"
{ IFS=:
for version in ${PYENV_VERSION}; do
if [ "$version" = "system" ]; then
if PYTHON_PATH="$(pyenv-which python 2>/dev/null)"; then
PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}"
else
echo "pyenv: system version not found in PATH" >&2
exit 1
fi
else
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
fi
if [ -d "$PYENV_PREFIX_PATH" ]; then
PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH")
else
echo "pyenv: version \`${version}' not installed" >&2
exit 1
fi
done
}
IFS="$OLDIFS"
IFS=: echo "${PYENV_PREFIX_PATHS[*]}"
OLDIFS="$IFS"
{ IFS=:
echo "${PYENV_PREFIX_PATHS[*]}"
}
IFS="$OLDIFS"

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env bash
# Summary: Rehash pyenv shims (run this after installing executables)
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -15,7 +17,11 @@ mkdir -p "$SHIM_PATH"
set -o noclobber
{ echo > "$PROTOTYPE_SHIM_PATH"
} 2>/dev/null ||
{ echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
{ if [ -w "$SHIM_PATH" ]; then
echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
else
echo "pyenv: cannot rehash: $SHIM_PATH isn't writable"
fi
exit 1
} >&2
set +o noclobber
@@ -30,83 +36,81 @@ remove_prototype_shim() {
# The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `pyenv exec`. This file is
# hard-linked for every binary and then removed. The linking technique
# is fast, uses less disk space than unique files, and also serves as
# a locking mechanism.
# hard-linked for every executable and then removed. The linking
# technique is fast, uses less disk space than unique files, and also
# serves as a locking mechanism.
create_prototype_shim() {
cat > "$PROTOTYPE_SHIM_PATH" <<SH
#!/usr/bin/env bash
set -e
[ -n "\$PYENV_DEBUG" ] && set -x
program="\${0##*/}"
if [ "\$program" = "python" ]; then
for arg; do
case "\$arg" in
-c* | -- ) break ;;
*/* )
if [ -f "\$arg" ]; then
export PYENV_DIR="\${arg%/*}"
break
fi
;;
esac
done
fi
export PYENV_ROOT="$PYENV_ROOT"
exec pyenv exec "\${0##*/}" "\$@"
exec "$(command -v pyenv)" exec "\$program" "\$@"
SH
chmod +x "$PROTOTYPE_SHIM_PATH"
}
# If the contents of the prototype shim file differ from the contents
# of the first shim in the shims directory, assume pyenv has been
# upgraded and the existing shims need to be removed.
remove_outdated_shims() {
for shim in *; do
if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then
for shim in *; do rm -f "$shim"; done
fi
break
done
}
# The basename of each argument passed to `make_shims` will be
# registered for installation as a shim. In this way, plugins may call
# `make_shims` with a glob to register many shims at once.
make_shims() {
local shims="$@"
local shims=("$@")
for file in $shims; do
for file in "${shims[@]}"; do
local shim="${file##*/}"
register_shim "$shim"
done
}
# Create an empty array for the list of registered shims.
# Create an empty array for the list of registered shims and an empty
# string to use as a search index.
registered_shims=()
registered_shims_index=""
# We will keep track of shims registered for installation with the
# global `reigstered_shims` array and with a global variable for each
# shim. The array will let us iterate over all registered shims. The
# global variables will let us quickly check whether a shim with the
# given name has been registered or not.
# global `registered_shims` array and with a global search index
# string. The array will let us iterate over all registered shims. The
# index string will let us quickly check whether a shim with the given
# name has been registered or not.
register_shim() {
local shim="$@"
local var="$(shim_variable_name "$shim")"
if [ -z "${!var}" ]; then
registered_shims[${#registered_shims[*]}]="$shim"
eval "${var}=1"
fi
}
# To compute the global variable name for a given shim we must first
# escape any non-alphanumeric characters. If the shim name is
# alphanumeric (including a hyphen or underscore) we can take a
# shorter path. Otherwise, we must iterate over each character and
# escape the non-alphanumeric ones using `printf`.
shim_variable_name() {
local shim="$1"
local result="_shim_"
if [[ ! "$shim" =~ [^[:alnum:]_-] ]]; then
shim="${shim//_/_5f}"
shim="${shim//-/_2d}"
result="$result$shim"
else
local length="${#shim}"
local char i
for ((i=0; i<length; i++)); do
char="${shim:$i:1}"
if [[ "$char" =~ [[:alnum:]] ]]; then
result="$result$char"
else
result="$result$(printf "_%02x" \'"$char")"
fi
done
fi
echo "$result"
registered_shims["${#registered_shims[@]}"]="$shim"
registered_shims_index="$registered_shims_index/$shim/"
}
# To install all the registered shims, we iterate over the
# `registered_shims` array and create a link if one does not already
# exist.
install_registered_shims() {
local shim
for shim in "${registered_shims[@]}"; do
[ -e "$shim" ] || ln -f "$PROTOTYPE_SHIM_PATH" "$shim"
done
@@ -117,11 +121,10 @@ install_registered_shims() {
# in the directory but has not been registered as a shim should be
# removed.
remove_stale_shims() {
local var
local shim
for shim in *; do
var="$(shim_variable_name "$shim")"
if [ -z "${!var}" ]; then
rm -f "$shim"
if [[ "$registered_shims_index" != *"/$shim/"* ]]; then
rm -f "$shim"
fi
done
}
@@ -129,17 +132,23 @@ remove_stale_shims() {
# Change to the shims directory.
cd "$SHIM_PATH"
# Create the prototype shim, then register shims for all known binaries.
create_prototype_shim
shopt -s nullglob
# Create the prototype shim, then register shims for all known
# executables.
create_prototype_shim
remove_outdated_shims
make_shims ../versions/*/bin/*
# Restore the previous working directory.
cd "$OLDPWD"
# Allow plugins to register shims.
for script in $(pyenv-hooks rehash); do
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks rehash`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done

View File

@@ -1,2 +1,3 @@
#!/usr/bin/env bash
# Summary: Display the root directory where versions and shims are kept
echo $PYENV_ROOT

View File

@@ -1,18 +0,0 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
IFS=: versions=($(pyenv-version-name))
length="${#versions[@]}"
PYENV_VERSION_NAMES=()
for ((i=0; i<length-1; i++)); do
PYENV_VERSION_NAMES=("${PYENV_VERSION_NAMES[@]}" "${versions[$i]}")
done
if [ -n "$PYENV_VERSION" ]; then
IFS=: PYENV_VERSION="${PYENV_VERSION_NAMES[*]}"
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
else
pyenv-version-file-write "$(pyenv-version-file)" "${PYENV_VERSION_NAMES[@]}"
fi

View File

@@ -1,14 +0,0 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name))
versions=("$@")
PYENV_VERSION_NAMES=("${PYENV_VERSION_NAMES[@]}" "${versions[@]}")
if [ -n "$PYENV_VERSION" ]; then
IFS=: PYENV_VERSION="${PYENV_VERSION_NAMES[*]}"
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
else
pyenv-version-file-write "$(pyenv-version-file)" "${PYENV_VERSION_NAMES[@]}"
fi

23
libexec/pyenv-sh-rehash Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-rehash --complete
fi
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
# When pyenv shell integration is enabled, delegate to pyenv-rehash,
# then tell the shell to empty its command lookup cache.
pyenv-rehash
case "$shell" in
fish )
# no rehash support
;;
* )
echo "hash -r 2>/dev/null || true"
;;
esac

View File

@@ -1,4 +1,18 @@
#!/usr/bin/env bash
#
# Summary: Set or show the shell-specific Python version
#
# Usage: pyenv shell <version>
# pyenv shell --unset
#
# Sets a shell-specific Python version by setting the `PYENV_VERSION'
# environment variable in your shell. This version overrides local
# application-specific versions and the global version.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -10,6 +24,7 @@ if [ "$1" = "--complete" ]; then
fi
versions=("$@")
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
if [ -z "$versions" ]; then
if [ -z "$PYENV_VERSION" ]; then
@@ -22,12 +37,31 @@ if [ -z "$versions" ]; then
fi
if [ "$versions" = "--unset" ]; then
echo "unset PYENV_VERSION"
exit 1
case "$shell" in
fish )
echo "set -e PYENV_VERSION"
;;
* )
echo "unset PYENV_VERSION"
;;
esac
exit
fi
# Make sure the specified version is installed.
pyenv-prefix "${versions[@]}" >/dev/null
IFS=: PYENV_VERSION="${versions[*]}"
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
if pyenv-prefix "${versions[@]}" >/dev/null; then
OLDIFS="$IFS"
IFS=: version="${versions[*]}"
IFS="$OLDIFS"
case "$shell" in
fish )
echo "setenv PYENV_VERSION \"${version}\""
;;
* )
echo "export PYENV_VERSION=\"${version}\""
;;
esac
else
echo "false"
exit 1
fi

View File

@@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Summary: List existing pyenv shims
# Usage: pyenv shims [--short]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -8,6 +11,8 @@ if [ "$1" = "--complete" ]; then
exit
fi
shopt -s nullglob
for command in "${PYENV_ROOT}/shims/"*; do
if [ "$1" = "--short" ]; then
echo "${command##*/}"

View File

@@ -1,8 +1,16 @@
#!/usr/bin/env bash
# Summary: Show the current Python version and its origin
#
# Shows the currently selected Python version and how it was
# selected. To obtain only the version string, use `pyenv
# version-name'.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
OLDIFS="$IFS"
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name))
IFS="$OLDIFS"
for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do
echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))"

View File

@@ -1,15 +1,25 @@
#!/usr/bin/env bash
# Summary: Detect the file that sets the current pyenv version
set -e
[ -n "$PYENV_DEBUG" ] && set -x
root="$PYENV_DIR"
while [ -n "$root" ]; do
if [ -e "${root}/.pyenv-version" ]; then
echo "${root}/.pyenv-version"
exit
fi
root="${root%/*}"
done
find_local_version_file() {
local root="$1"
while [ -n "$root" ]; do
if [ -e "${root}/.python-version" ]; then
echo "${root}/.python-version"
exit
elif [ -e "${root}/.pyenv-version" ]; then
echo "${root}/.pyenv-version"
exit
fi
[ "${root}" = "${root%/*}" ] && break
root="${root%/*}"
done
}
find_local_version_file "$PYENV_DIR"
[ "$PYENV_DIR" = "$PWD" ] || find_local_version_file "$PWD"
global_version_file="${PYENV_ROOT}/version"

View File

@@ -1,26 +1,22 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-read <file>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
VERSION_FILE="$1"
if [ -e "$VERSION_FILE" ]; then
# Read and print the first non-whitespace word from the specified
# version file.
versions=()
while read -a words; do
word="${words[0]}"
if [ -n "$word" ]; then
length="${#versions[@]}"
versions=("${versions[@]}" "$word")
fi
done < <( cat "$VERSION_FILE" && echo )
# Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it.
words=( $(cut -b 1-1024 "$VERSION_FILE") )
versions=("${words[@]}")
if [ -n "$versions" ]; then
{
IFS=:
OLDIFS="$IFS"
{ IFS=:
echo "${versions[*]}"
}
IFS="$OLDIFS"
exit
fi
fi

View File

@@ -1,18 +1,20 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-write <file> <version>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
PYENV_VERSION_FILE="$1"
shift
shift || true
versions=("$@")
if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then
echo "usage: pyenv write-version-file FILENAME VERSIONS..." >&2
pyenv-help --usage version-file-write >&2
exit 1
fi
# Make sure the specified version is installed.
pyenv-prefix "${vesions[@]}" >/dev/null
pyenv-prefix "${versions[@]}" >/dev/null
# Write the version out to disk.
rm -f "$PYENV_VERSION_FILE"

View File

@@ -1,28 +1,44 @@
#!/usr/bin/env bash
# Summary: Show the current Python version
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -n "$PYENV_VERSION" ]; then
IFS=: versions=($(echo "${PYENV_VERSION}"))
else
if [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION_FILE="$(pyenv-version-file)"
IFS=: versions=($(pyenv-version-file-read "$PYENV_VERSION_FILE" || true))
IFS=: PYENV_VERSION="${versions[*]}"
export PYENV_VERSION
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
fi
if [ -z "$versions" ] || [ "$versions" = "system" ] ; then
if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then
echo "system"
exit
fi
for version in "${versions[@]}"; do
PYENV_VERSION_PATH="${PYENV_ROOT}/versions/${version}"
if [ ! -d "$PYENV_VERSION_PATH" ]; then
echo "pyenv: version \`$version' is not installed" >&2
exit 1
fi
done
version_exists() {
local version="$1"
[ -d "${PYENV_ROOT}/versions/${version}" ]
}
echo "${PYENV_VERSION}"
versions=()
OLDIFS="$IFS"
{ IFS=:
for version in ${PYENV_VERSION}; do
if version_exists "$version" || [ "$version" = "system" ]; then
versions=("${versions[@]}" "${version}")
elif version_exists "${version#python-}"; then
{ echo "warning: ignoring extraneous \`python-' prefix in version \`${version}'"
echo " (set by $(pyenv-version-origin))"
} >&2
versions=("${versions[@]}" "${version#python-}")
else
echo "pyenv: version \`$version' is not installed" >&2
exit 1
fi
done
}
IFS="$OLDIFS"
OLDIFS="$IFS"
{ IFS=:
echo "${versions[*]}"
}
IFS="$OLDIFS"

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# Summary: Explain how the current Python version is set
set -e
[ -n "$PYENV_DEBUG" ] && set -x

View File

@@ -1,7 +1,28 @@
#!/usr/bin/env bash
# Summary: List all Python versions available to pyenv
# Usage: pyenv versions [--bare]
#
# Lists all Python versions found in `$PYENV_ROOT/versions/*'.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ "$1" = "--bare" ]; then
hit_prefix=""
miss_prefix=""
current_versions=()
version_origin=""
include_system=""
else
hit_prefix="* "
miss_prefix=" "
OLDIFS="$IFS"
IFS=: current_versions=($(pyenv-version-name || true))
IFS="$OLDIFS"
version_origin=" (set by $(pyenv-version-origin))"
include_system="1"
fi
array_exists() {
local x car="$1"
shift
@@ -11,26 +32,21 @@ array_exists() {
return 1
}
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name))
print_version() {
if array_exists "$1" "${current_versions[@]}"; then
echo "${hit_prefix}$1${version_origin}"
else
echo "${miss_prefix}$1"
fi
}
if [ "$1" = "--bare" ]; then
hit_prefix=""
miss_prefix=""
version_origin=""
else
hit_prefix="* "
miss_prefix=" "
version_origin=" (set by $(pyenv-version-origin))"
# Include "system" in the non-bare output, if it exists
if [ -n "$include_system" ] && PYENV_VERSION=system pyenv-which python >/dev/null 2>&1; then
print_version system
fi
for path in "${PYENV_ROOT}/versions/"*; do
if [ -d "$path" ]; then
version="${path##*/}"
if array_exists "$version" "${PYENV_VERSION_NAMES[@]}"; then
echo "${hit_prefix}${version}${version_origin}"
else
echo "${miss_prefix}${version}"
fi
print_version "${path##*/}"
fi
done

View File

@@ -1,4 +1,7 @@
#!/usr/bin/env bash
# Summary: List all Python versions that contain the given executable
# Usage: pyenv whence [--path] <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -27,7 +30,7 @@ whence() {
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
echo "usage: pyenv whence [--path] COMMAND" >&2
pyenv-help --usage whence >&2
exit 1
fi

View File

@@ -1,4 +1,12 @@
#!/usr/bin/env bash
#
# Summary: Display the full path to an executable
#
# Usage: pyenv which <command>
#
# Displays the full path to the executable that pyenv will invoke when
# you run the given command.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -40,28 +48,33 @@ remove_from_path() {
echo "${result%:}"
}
OLDIFS="$IFS"
IFS=: versions=($(pyenv-version-name))
IFS=: PYENV_VERSION="${versions[*]}"
IFS="$OLDIFS"
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
echo "usage: pyenv which COMMAND" >&2
pyenv-help --usage which >&2
exit 1
fi
for version in "${versions[@]}"; do
if [ "$version" = "system" ]; then
PATH="$(remove_from_path "${PYENV_ROOT}/shims")"
PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND")"
PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)"
else
PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}"
if [ -x "$PYENV_COMMAND_PATH" ]; then
break
fi
fi
if [ -x "$PYENV_COMMAND_PATH" ]; then
break
fi
done
for script in $(pyenv-hooks which); do
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks which`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
@@ -69,5 +82,15 @@ if [ -x "$PYENV_COMMAND_PATH" ]; then
echo "$PYENV_COMMAND_PATH"
else
echo "pyenv: $PYENV_COMMAND: command not found" >&2
versions="$(pyenv-whence "$PYENV_COMMAND" || true)"
if [ -n "$versions" ]; then
{ echo
echo "The \`$1' command exists in these Python versions:"
echo "$versions" | sed 's/^/ /g'
echo
} >&2
fi
exit 127
fi

1
plugins/.gitignore vendored
View File

@@ -1,3 +1,4 @@
/*
!/.gitignore
!/version-ext-compat
!/python-build

View File

@@ -1,21 +0,0 @@
Copyright (c) 2011 Sam Stephenson
Copyright (c) 2012 Yamashita, Yuu
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,199 @@
# python-build
python-build is a [pyenv](https://github.com/yyuu/pyenv) plugin
that provides a `pyenv install` command to compile and install
different versions of Python on UNIX-like systems.
You can also use python-build without pyenv in environments where you
need precise control over Python version installation.
## Installation
### Installing as an pyenv plugin (recommended)
You need nothing to do since python-build is bundled with pyenv by
default.
### Installing as a standalone program (advanced)
Installing python-build as a standalone program will give you access to
the `python-build` command for precise control over Python version
installation. If you have pyenv installed, you will also be able to
use the `pyenv install` command.
git clone git://github.com/yyuu/pyenv.git
cd pyenv/plugins/python-build
./install.sh
This will install python-build into `/usr/local`. If you do not have
write permission to `/usr/local`, you will need to run `sudo
./install.sh` instead. You can install to a different prefix by
setting the `PREFIX` environment variable.
To update python-build after it has been installed, run `git pull` in
your cloned copy of the repository, then re-run the install script.
## Usage
### Using `pyenv install` with pyenv
To install a Python version for use with pyenv, run `pyenv install` with
the exact name of the version you want to install. For example,
pyenv install 2.7.4
Python versions will be installed into a directory of the same name
under `~/.pyenv/versions`.
To see a list of all available Python versions, run `pyenv install --list`.
You may also tab-complete available Python
versions if your pyenv installation is properly configured.
### Using `python-build` standalone
If you have installed python-build as a standalone program, you can use
the `python-build` command to compile and install Python versions into
specific locations.
Run the `python-build` command with the exact name of the version you
want to install and the full path where you want to install it. For
example,
python-build 2.7.4 ~/local/python-2.7.4
To see a list of all available Python versions, run `python-build
--definitions`.
Pass the `-v` or `--verbose` flag to `python-build` as the first
argument to see what's happening under the hood.
### Custom definitions
Both `pyenv install` and `python-build` accept a path to a custom
definition file in place of a version name. Custom definitions let you
develop and install versions of Python that are not yet supported by
python-build.
See the [python-build built-in
definitions](https://github.com/yyuu/pyenv/tree/master/plugins/python-build/share/python-build)
as a starting point for custom definition files.
### Special environment variables
You can set certain environment variables to control the build
process.
* `TMPDIR` sets the location where python-build stores temporary files.
* `PYTHON_BUILD_BUILD_PATH` sets the location in which sources are
downloaded and built. By default, this is a subdirectory of
`TMPDIR`.
* `PYTHON_BUILD_CACHE_PATH`, if set, specifies a directory to use for
caching downloaded package files.
* `PYTHON_BUILD_MIRROR_URL` overrides the default mirror URL root to one
of your choosing.
* `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download
packages from their original source URLs instead of using a mirror.
* `CC` sets the path to the C compiler.
* `CONFIGURE_OPTS` lets you pass additional options to `./configure`.
* `MAKE` lets you override the command to use for `make`. Useful for
specifying GNU make (`gmake`) on some systems.
* `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to
`make`.
* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_OPTS` allow you to specify
configure and make options for buildling CPython. These variables will
be passed to Python only, not any dependent packages (e.g. libyaml).
### Checksum verification
If you have the `md5`, `openssl`, or `md5sum` tool installed,
python-build will automatically verify the MD5 checksum of each
downloaded package before installing it.
Checksums are optional and specified as anchors on the package URL in
each definition. (All bundled definitions include checksums.)
### Package download mirrors
python-build will first attempt to download package files from a mirror
hosted on Amazon CloudFront. If a package is not available on the
mirror, if the mirror is down, or if the download is corrupt,
python-build will fall back to the official URL specified in the
defintion file.
You can point python-build to another mirror by specifying the
`PYTHON_BUILD_MIRROR_URL` environment variable--useful if you'd like to
run your own local mirror, for example. Package mirror URLs are
constructed by joining this variable with the MD5 checksum of the
package file.
If you don't have an MD5 program installed, python-build will skip the
download mirror and use official URLs instead. You can force
python-build to bypass the mirror by setting the
`PYTHON_BUILD_SKIP_MIRROR` environment variable.
The official python-build download mirror is provided by [Git Hub Pages](http://yyuu.github.io/pythons/).
### Package download caching
You can instruct python-build to keep a local cache of downloaded
package files by setting the `PYTHON_BUILD_CACHE_PATH` environment
variable. When set, package files will be kept in this directory after
the first successful download and reused by subsequent invocations of
`python-build` and `pyenv install`.
The `pyenv install` command defaults this path to `~/.pyenv/cache`, so
in most cases you can enable download caching simply by creating that
directory.
### Keeping the build directory after installation
Both `python-build` and `pyenv install` accept the `-k` or `--keep`
flag, which tells python-build to keep the downloaded source after
installation. This can be useful if you need to use `gdb` and
`memprof` with Python.
Source code will be kept in a parallel directory tree
`~/.pyenv/sources` when using `--keep` with the `pyenv install`
command. You should specify the location of the source code with the
`PYTHON_BUILD_BUILD_PATH` environment variable when using `--keep` with
`python-build`.
## Getting Help
Please see the [python-build
wiki](https://github.com/yyuu/pyenv/wiki) for solutions to
common problems.
If you can't find an answer on the wiki, open an issue on the [issue
tracker](https://github.com/yyuu/pyenv/issues). Be sure to
include the full build log for build failures.
### License
(The MIT License)
* Copyright (c) 2013 Yamashita, Yuu
* Copyright (c) 2012 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,4 +1,26 @@
#!/usr/bin/env bash
#
# Summary: Install a Python version using python-build
#
# Usage: pyenv install [-f] [-kvp] <version>
# pyenv install [-f] [-kvp] <definition-file>
# pyenv install -l|--list
#
# -l/--list List all available versions
# -f/--force Install even if the version appears to be installed already
#
# python-build options:
#
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
# (defaults to $PYENV_ROOT/sources)
# -v/--verbose Verbose mode: print compilation status to stdout
# -p/--patch Apply a patch from stdin before building
# -g/--debug Build a debug version
#
# For detailed information on installing Python versions with
# python-build, including a list of environment variables for adjusting
# compilation, see: https://github.com/yyuu/pyenv#readme
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
@@ -15,22 +37,25 @@ fi
eval "$(python-build --lib)"
usage() {
{ echo "usage: pyenv install [-k|--keep] [-v|--verbose] VERSION"
echo " pyenv install [-k|--keep] [-v|--verbose] /path/to/definition"
echo " pyenv install -l|--list"
echo
echo " -l/--list List all available versions"
echo " -k/--keep Keep source tree in \$PYENV_BUILD_ROOT after installation"
echo " (defaults to ${PYENV_ROOT}/sources)"
echo " -v/--verbose Verbose mode: print compilation status to stdout"
echo
} >&2
# We can remove the sed fallback once pyenv 0.4.0 is widely available.
pyenv-help install 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
[ -z "$1" ] || exit "$1"
}
definitions() {
local query="$1"
python-build --definitions | grep -F "$query" || true
}
indent() {
sed 's/^/ /'
}
unset FORCE
unset KEEP
unset VERBOSE
unset HAS_PATCH
unset DEBUG
parse_options "$@"
for option in "${OPTIONS[@]}"; do
@@ -40,15 +65,24 @@ for option in "${OPTIONS[@]}"; do
;;
"l" | "list" )
echo "Available versions:"
python-build --definitions | sed 's/^/ /'
definitions | indent
exit
;;
"f" | "force" )
FORCE=true
;;
"k" | "keep" )
[ -n "${PYENV_BUILD_ROOT}" ] || PYENV_BUILD_ROOT="${PYENV_ROOT}/sources"
;;
"v" | "verbose" )
VERBOSE="-v"
;;
"p" | "patch" )
HAS_PATCH="-p"
;;
"g" | "debug" )
DEBUG="-g"
;;
"version" )
exec python-build --version
;;
@@ -58,21 +92,124 @@ for option in "${OPTIONS[@]}"; do
esac
done
unset VERSION_NAME
# The first argument contains the definition to install. If the
# argument is missing, try to install whatever local app-specific
# version is specified by pyenv. Show usage instructions if a local
# version is not specified.
DEFINITION="${ARGUMENTS[0]}"
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)"
[ -n "$DEFINITION" ] || usage 1
for script in $(pyenv-hooks install); do
source "$script"
done
VERSION_NAME="${DEFINITION##*/}"
# Define `before_install` and `after_install` functions that allow
# plugin hooks to register a string of code for execution before or
# after the installation process.
declare -a before_hooks after_hooks
before_install() {
local hook="$1"
before_hooks["${#before_hooks[@]}"]="$hook"
}
after_install() {
local hook="$1"
after_hooks["${#after_hooks[@]}"]="$hook"
}
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks install`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
# compute the installation prefix.
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
# If PYENV_BUILD_ROOT is set, then always pass keep options to python-build
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -z "$FORCE" ] && [ -d "${PREFIX}/bin" ]; then
echo "pyenv: $PREFIX already exists" >&2
read -p "continue with installation? (y/N) "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
fi
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
if [ -n "${PYENV_BUILD_ROOT}" ]; then
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
KEEP="-k"
fi
python-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX"
pyenv rehash
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
# exists and the variable is not already set.
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
fi
# Default PYENV_VERSION to the friendly Python version. (The
# CPython installer requires an existing Python installation to run. An
# unsatisfied local python version can cause the installer to
# fail.)
if [[ "${VERSION_NAME}" == [23]"."* ]]; then
for version in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
PYENV_VERSION="$(pyenv-whence "python${version}" 2>/dev/null | tail -n 1 || true)"
if [ -n "${PYENV_VERSION}" ]; then
export PYENV_VERSION
break
fi
done
fi
# Execute `before_install` hooks.
for hook in "${before_hooks[@]}"; do eval "$hook"; done
# Plan cleanup on unsuccessful installation.
cleanup() {
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
}
trap cleanup SIGINT
# Invoke `python-build` and record the exit status in $STATUS.
STATUS=0
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
if [ -n "$candidates" ]; then
echo
echo "The following versions contain \`$DEFINITION' in the name:"
echo "$candidates" | indent
fi
echo
echo "You can list all available versions with \`pyenv install --list'."
echo
echo "If the version you're looking for is not present, first try upgrading"
echo "pyenv. If it's still missing, open a request on the pyenv"
echo "issue tracker: https://github.com/yyuu/pyenv/issues"
} >&2
fi
# Execute `after_install` hooks.
for hook in "${after_hooks[@]}"; do eval "$hook"; done
# Run `pyenv-rehash` after a successful installation.
if [ "$STATUS" == "0" ]; then
pyenv-rehash
else
cleanup
fi
exit "$STATUS"

View File

@@ -1,4 +1,15 @@
#!/usr/bin/env bash
#
# Summary: Uninstall a specific Python version
#
# Usage: pyenv uninstall [-f|--force] <version>
#
# -f Attempt to remove the specified version without prompting
# for confirmation. If the version does not exist, do not
# display an error message.
#
# See `pyenv versions` for a complete list of installed versions.
#
set -e
# Provide pyenv completions
@@ -11,7 +22,7 @@ if [ -z "$PYENV_ROOT" ]; then
fi
unset FORCE
if [ "$1" = "-f" ]; then
if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
FORCE=true
shift
fi
@@ -19,20 +30,32 @@ fi
DEFINITION="$1"
case "$DEFINITION" in
"" | -* )
{ echo "usage: pyenv uninstall [-f] VERSION"
echo
echo " -f Attempt to remove the specified version without prompting"
echo " for confirmation. If the version does not exist, do not"
echo " display an error message."
echo
echo "Installed versions:"
pyenv versions --bare | sed 's/^/ /'
echo
# We can remove the sed fallback once pyenv 0.4.0 is widely available.
{ pyenv-help uninstall 2>/dev/null ||
sed -ne '/^#/!q;s/.\{1,2\}//;1,4d;p' < "$0"
} >&2
exit 1
;;
esac
declare -a before_hooks after_hooks
before_uninstall() {
local hook="$1"
before_hooks["${#before_hooks[@]}"]="$hook"
}
after_uninstall() {
local hook="$1"
after_hooks["${#after_hooks[@]}"]="$hook"
}
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks uninstall`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done
VERSION_NAME="${DEFINITION##*/}"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
@@ -49,7 +72,11 @@ if [ -z "$FORCE" ]; then
esac
fi
for hook in "${before_hooks[@]}"; do eval "$hook"; done
if [ -d "$PREFIX" ]; then
rm -rf "$PREFIX"
pyenv rehash
pyenv-rehash
fi
for hook in "${after_hooks[@]}"; do eval "$hook"; done

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,12 @@
#!/bin/sh
# Usage: PREFIX=/usr/local ./install.sh
#
# Installs python-build under $PREFIX.
set -e
cd "$(dirname "$0")"
if [ -z "${PREFIX}" ]; then
PREFIX="/usr/local"
fi
@@ -9,15 +14,13 @@ fi
BIN_PATH="${PREFIX}/bin"
SHARE_PATH="${PREFIX}/share/python-build"
mkdir -p "${BIN_PATH}"
mkdir -p "${SHARE_PATH}"
mkdir -p "$BIN_PATH" "$SHARE_PATH"
for file in bin/*; do
cp "${file}" "${BIN_PATH}"
install -p bin/* "$BIN_PATH"
for share in share/python-build/*; do
if [ -d "$share" ]; then
cp -RPp "$share" "$SHARE_PATH"
else
install -p -m 0644 "$share" "$SHARE_PATH"
fi
done
for file in share/python-build/*; do
cp "${file}" "${SHARE_PATH}"
done
echo "Installed python-build at ${PREFIX}"

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4" "http://python.org/ftp/python/2.4/Python-2.4.tgz#149ad508f936eccf669d52682cf8e606" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.1" "http://python.org/ftp/python/2.4.1/Python-2.4.1.tgz#7bb2416a4f421c3452d306694d3efbba" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.2" "http://python.org/ftp/python/2.4.2/Python-2.4.2.tgz#07cfc759546f6723bb367be5b1ce9875" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.3" "http://python.org/ftp/python/2.4.3/Python-2.4.3.tgz#edf994473a8c1a963aaa71e442b285b7" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.4" "http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz#82d000617baaef269ad5795c595fdc58" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.5" "http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz#750b652bfdd12675e102bbe25e5e9893" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.6" "http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz#7564b2b142b1b8345cd5358b7aaaa482" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5" "http://python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.1" "http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.2" "http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.3" "http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.4" "http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.5" "http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.6" "http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-2.6-dev" "https://bitbucket.org/mirror/cpython" "2.6" standard verify_py26
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.6" "http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" ldflags_dirs standard verify_py26
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.7" "http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" ldflags_dirs standard verify_py26
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.8" "http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" ldflags_dirs standard verify_py26
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.9" "http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz#bddbd64bf6f5344fc55bbe49a72fe4f3" ldflags_dirs standard verify_py26
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7" "http://python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.1" "http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-2.7.2" "http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.2" "http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-2.7.3" "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.3" "http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.4" "http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz#592603cfaf4490a980e93ecb92bde44a" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.5" "http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.6" "http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz#1d8728eb0dfcac72a0fd99c17ec7f386" ldflags_dirs standard verify_py27
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.0.1" "http://python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" ldflags_dirs standard verify_py30
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.3" "http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" ldflags_dirs standard verify_py31
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.1.4" "http://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.4" "http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35" ldflags_dirs standard verify_py31
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.1.5" "http://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.5" "http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab" ldflags_dirs standard verify_py31
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
fetch_url "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2" "http://python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.1" "http://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.1" "http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.2" "http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.2" "http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.3" "http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.3" "http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.4" "http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz#3af05758d0bc2b1a27249e8d622c3e91" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.5" "http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz#ed8d5529d2aebc36b53f4e0a0c9e6728" ldflags_dirs standard verify_py32
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz"
install_package "distribute-0.6.28" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz" python
install_package "pip-1.1" "http://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz" python
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" ldflags_dirs standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" ldflags_dirs standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" ldflags_dirs standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.3" "http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz#831d59212568dc12c95df222865d3441" ldflags_dirs standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.4" "http://python.org/ftp/python/3.3.4/Python-3.3.4.tgz#9f7df0dde690132c63b1dd2b640ed3a6" ldflags_dirs standard verify_py33
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,3 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py34 ensurepip

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a2" "http://python.org/ftp/python/3.4.0/Python-3.4.0a2.tgz#e6e81242a32e6f63d224254d24edbd2f" ldflags_dirs standard verify_py34
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a3" "http://python.org/ftp/python/3.4.0/Python-3.4.0a3.tgz#3598af9717cddd4c346d731913fdfd64" ldflags_dirs standard verify_py34
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,5 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a4" "http://python.org/ftp/python/3.4.0/Python-3.4.0a4.tgz#f874d97c90130b0249848be889b5e6e1" ldflags_dirs standard verify_py34
install_package "setuptools-2.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz#04a7664538957b832710653fd7d5b4e6" python
install_package "pip-1.5.2" "https://pypi.python.org/packages/source/p/pip/pip-1.5.2.tar.gz#5da30919f732d68b1c666e484e7676f5" python

View File

@@ -0,0 +1,3 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0b1" "http://python.org/ftp/python/3.4.0/Python-3.4.0b1.tgz#83143a755b8a29a59026c1fdfb8d18fc" ldflags_dirs standard verify_py34 ensurepip

View File

@@ -0,0 +1,3 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0b2" "http://python.org/ftp/python/3.4.0/Python-3.4.0b2.tgz#afe112d6fe595f501f1dcb3627e7b476" ldflags_dirs standard verify_py34 ensurepip

View File

@@ -0,0 +1,3 @@
require_cc "gcc" "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0b3" "http://python.org/ftp/python/3.4.0/Python-3.4.0b3.tgz#1ea3d96a270db1c7113c560e419edc55" ldflags_dirs standard verify_py34 ensurepip

View File

@@ -0,0 +1,26 @@
case "$(uname -s)" in
"Darwin" )
package_name="Anaconda-1.4.0-MacOSX-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.4.0-MacOSX-x86_64.sh#db8779f0a663e025da1b19755f372a57"
;;
"Linux" )
case "$(uname -m)" in
"i386" | "i486" | "i586" | "i686" | "i786" )
package_name="Anaconda-1.4.0-Linux-x86"
package_url="http://repo.continuum.io/archive/Anaconda-1.4.0-Linux-x86.sh#d5826bb10bb25d2f03639f841ef2f65f"
;;
"x86_64" )
package_name="Anaconda-1.4.0-Linux-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.4.0-Linux-x86_64.sh#9be0e7340f0cd2d2cbd5acbe8e988f45"
;;
esac
;;
esac
if [ -n "${package_name}" ] && [ -n "${package_url}" ]; then
install_script "${package_name}" "${package_url}" "anaconda" verify_py27
else
{ echo "Precompiled binary of anaconda-1.4.0 is not available for $(uname -s)-$(uname -m)."
} 1>&4 2>&1
exit 1
fi

View File

@@ -0,0 +1,26 @@
case "$(uname -s)" in
"Darwin" )
package_name="Anaconda-1.5.0-MacOSX-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.5.0-MacOSX-x86_64.sh#6fe90601dbcecb29a2afcaf44aeb37f6"
;;
"Linux" )
case "$(uname -m)" in
"i386" | "i486" | "i586" | "i686" | "i786" )
package_name="Anaconda-1.5.0-Linux-x86"
package_url="http://repo.continuum.io/archive/Anaconda-1.5.0-Linux-x86.sh#2a75cab6536838635fd38ee7fd3e2411"
;;
"x86_64" )
package_name="Anaconda-1.5.0-Linux-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.5.0-Linux-x86_64.sh#8319288082262fefbe322451aeae06ce"
;;
esac
;;
esac
if [ -n "${package_name}" ] && [ -n "${package_url}" ]; then
install_script "${package_name}" "${package_url}" "anaconda" verify_py27
else
{ echo "Precompiled binary of anaconda-1.5.0 is not available for $(uname -s)-$(uname -m)."
} 1>&4 2>&1
exit 1
fi

View File

@@ -0,0 +1,14 @@
case "$(uname -s)" in
"Darwin" )
package_name="Anaconda-1.5.1-MacOSX-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.5.1-MacOSX-x86_64.sh#03942512daf1b39eb3ff9016fc7efa0c"
;;
esac
if [ -n "${package_name}" ] && [ -n "${package_url}" ]; then
install_script "${package_name}" "${package_url}" "anaconda" verify_py27
else
{ echo "Precompiled binary of anaconda-1.5.1 is not available for $(uname -s)-$(uname -m)."
} 1>&4 2>&1
exit 1
fi

View File

@@ -0,0 +1,26 @@
case "$(uname -s)" in
"Darwin" )
package_name="Anaconda-1.6.0-MacOSX-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.0-MacOSX-x86_64.sh#cccdd0353bfd46d3a93143fc6e47d728"
;;
"Linux" )
case "$(uname -m)" in
"i386" | "i486" | "i586" | "i686" | "i786" )
package_name="Anaconda-1.6.0-Linux-x86"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.0-Linux-x86.sh#7a7f1f53684d38a7aa36935e34af30a3"
;;
"x86_64" )
package_name="Anaconda-1.6.0-Linux-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.0-Linux-x86_64.sh#207a0b4ebde49bcde67925ac8c72fe37"
;;
esac
;;
esac
if [ -n "${package_name}" ] && [ -n "${package_url}" ]; then
install_script "${package_name}" "${package_url}" "anaconda" verify_py27
else
{ echo "Precompiled binary of anaconda-1.6.0 is not available for $(uname -s)-$(uname -m)."
} 1>&4 2>&1
exit 1
fi

View File

@@ -0,0 +1,26 @@
case "$(uname -s)" in
"Darwin" )
package_name="Anaconda-1.6.1-MacOSX-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.1-MacOSX-x86_64.sh#4b60123e71864c447a0adc16398d5386"
;;
"Linux" )
case "$(uname -m)" in
"i386" | "i486" | "i586" | "i686" | "i786" )
package_name="Anaconda-1.6.1-Linux-x86"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.1-Linux-x86.sh#06412ae8de02c87b8de7d7e6d35ed092"
;;
"x86_64" )
package_name="Anaconda-1.6.1-Linux-x86_64"
package_url="http://repo.continuum.io/archive/Anaconda-1.6.1-Linux-x86_64.sh#70a1294c01e3ab5925fc52f2603de159"
;;
esac
;;
esac
if [ -n "${package_name}" ] && [ -n "${package_url}" ]; then
install_script "${package_name}" "${package_url}" "anaconda" verify_py27
else
{ echo "Precompiled binary of anaconda-1.6.1 is not available for $(uname -s)-$(uname -m)."
} 1>&4 2>&1
exit 1
fi

Some files were not shown because too many files have changed in this diff Show More