ken*_*nok 2 python macos virtualenv mysql-python 32bit-64bit
我的设置是:2.6.1 python(苹果默认,雪豹),virtualenv,并使用virtualenvwrapper
在环境之外,一切都以32位运行,这很好.但是有了一个新项目,我将继续研究需要django 1.3和大量的依赖项,所以我做了一个virtualenv.
我已经设法安装好一切,除了mysql-python(通过pip)得到"mach -o错误架构"的错误.我用virtualenv中的"import sys; sys.maxint"检查了我的python解释器,python以64位运行.
我已经设置了systemwide for python以32位运行"defaults write com.apple.versioner.python Prefer-32-Bit -bool yes"
有谁知道为什么在virtualenv内发生这种情况?
Apple用于Prefer-32-bit在OS X 10.6中为Pythons系统实现它们的大部分"魔力" 都在/usr/bin/python其中调用真正的Python解释器,这些解释器符号链接/usr/bin/python2.6和/usr/bin/python2.5. virtualenv将真正的解释器复制到virtualenv bin目录中,以便Prefer-32-bit绕过处理.
确保32位操作的选项包括:
使用该arch命令调用解释器.
$ virtualenv -p /usr/bin/python2.6 ./p
$ ./p/bin/python -c 'import sys;print(sys.maxsize)'
9223372036854775807
$ arch -i386 ./p/bin/python -c 'import sys;print(sys.maxsize)'
2147483647
Run Code Online (Sandbox Code Playgroud)用于lipo从通用二进制文件中仅提取32位arch.
$ file ./p/bin/python
./p/bin/python: Mach-O universal binary with 3 architectures
./p/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
./p/bin/python (for architecture i386): Mach-O executable i386
./p/bin/python (for architecture ppc7400): Mach-O executable ppc
$ cp ./p/bin/python ./p/bin/python-universal
$ lipo ./p/bin/python-universal -thin i386 -output ./p/bin/python
$ file ./p/bin/python
./p/bin/python: Mach-O executable i386
$ ./p/bin/python -c 'import sys;print(sys.maxsize)'
2147483647
Run Code Online (Sandbox Code Playgroud)安装并使用较新的32位Python 2.6或2.7(python.org提供的安装程序)
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |