有关MacOSX Yosemite上Homebrew和pyenv共存的几个新手问题。在将我的google-fu水平应用于该主题之后,我仍然感到困惑。抱歉,长度不够,但我想尽可能清楚。
首先,一些背景。我用brew安装pyenv,然后用pyenv安装python2和python3。
brew install pyenv
brew install pyenv-virtualenv
*I also added the necessary hooks into my profiles.*
pyenv install 2.7.10
pyenv install 3.4.3
pyenv rehash
pyenv global 2.7.10
Run Code Online (Sandbox Code Playgroud)
??? 问题(或澄清)。如果brew使用的是pyenv安装的python,我认为这会被皱眉,因为brew软件包将依赖于brew之外的东西来构建(例如,使用pyenv卸载python版本可能会破坏brew软件包)?看来brew使用PATH中第一个出现的python(对我来说是pyenv的版本)?但是,在以下每种情况下,填充都是针对“ python”而不是“ python3”的(甚至对于pyenv 3.4.3)。我是否假设设置“ pyenv shell 3.4.3”将使brew brew python命令(假设适用于python2.x)正确到pyenv的python 3.4.3,这是我正确的做法吗?
pyenv shell 2.7.10
brew --config
Python: /Users/anonymous/.pyenv/shims/python => /Users/anonymous/.pyenv/versions/2.7.10/bin/python2.7
pyenv shell 3.4.3
brew --config
Python: /Users/anonymous/.pyenv/shims/python => /Users/anonymous/.pyenv/versions/3.4.3/bin/python3.4
pyenv shell system
brew --config
Python: /Users/anonymous/.pyenv/shims/python => /usr/bin/python
Run Code Online (Sandbox Code Playgroud)
??? 题。如果使用pyenv的python进行酿造不是一个好主意,那么我是否也应该安装python和python3的酿造版本,否则会发生冲突并以某种方式引起问题吗?我的选择似乎是使用在我的Mac上安装的系统python,还是使用brew自己的pythons满足我的所有酿造需求。在第一种情况下,我可以确保在任何酝酿之前调用“ pyenv shell系统”,或者设置别名以按照其他人的建议使它自动化(alias brew =“ …
我是新手python.我正在运行我上网的脚本:
python file.py
Run Code Online (Sandbox Code Playgroud)
我明白了:
File "file.py", line 293
print json.dumps(evaluate(), indent=4)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我读它与python版本有关,应该是一些2.7.所以我下载了pyenv.我在包含file.py以下内容的目录中设置了正确的版本:pyenv local 2.7.10.但我仍然得到同样的错误.
(有关信息,我正在尝试安装blockchain工具:以太坊)
我有一个旧版本的 Python。然后我卸载了旧版本,并安装了一个新版本 - 2.7.9。
我将 2.7.9 设置为我的全球版本,pyenv但我所有的模块都没有被检测到。它们是在升级之前安装的。现在我卸载了它们并重新安装但仍然无法正常工作......
~/Projects/development$ python
Python 2.7.9 (default, Mar 3 2016, 16:42:45)
[GCC 4.6.3] on linux2
>>> from github import Github
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named github
Run Code Online (Sandbox Code Playgroud)
他们已经在python升级后重新安装了!尝试再次安装它们,会出现Requirement already meet错误。
~/Projects/development$ pip install PyGithub
Requirement already satisfied (use --upgrade to upgrade): PyGithub in /usr/local/lib/python2.7/dist-packages
Cleaning up...
Run Code Online (Sandbox Code Playgroud)
我能做什么?
~/Projects/development$ pyenv versions
system
* 2.7.9 (set by /home/user/.pyenv/version)
~/Projects/development$ python
Python 2.7.9 (default, Mar …Run Code Online (Sandbox Code Playgroud) 我的.bashrc具有:
enable-pyenv () {
# Load pyenv automatically by adding
# the following to your profile:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
}
enable-pyenv
Run Code Online (Sandbox Code Playgroud)
启用pyenv。在某些情况下,我想(暂时)禁用pyenv。我怎样才能做到这一点?
我正在尝试启动并运行 pyenv (Mac OS X),因此我可以使用 tox/detox 来测试代码与多个 python 环境。我能够安装多个python3版本,然后我pyenv global在所有版本上使用。这样做之后,pyenv versions返回这个列表:
system
* 3.2.6 (set by /Users/Workspace/.pyenv/version)
3.3.6
3.4.6
3.5.3
3.6.1
Run Code Online (Sandbox Code Playgroud)
但是,只有 3.4 和 3.5 被识别(以及 2.7.8,我认为它是“系统”):
Geoffreys-MBP:pydnmr-tox Workspace$ python --version
Python 2.7.8
Geoffreys-MBP:pydnmr-tox Workspace$ python3.2 --version
-bash: python3.2: command not found
Geoffreys-MBP:pydnmr-tox Workspace$ python3.3 --version
-bash: python3.3: command not found
Geoffreys-MBP:pydnmr-tox Workspace$ python3.4 --version
Python 3.4.3
Geoffreys-MBP:pydnmr-tox Workspace$ python3.5 --version
Python 3.5.2
Geoffreys-MBP:pydnmr-tox Workspace$ python3.6 --version
-bash: python3.6: command not found
Run Code Online (Sandbox Code Playgroud)
任何想法是什么导致这种行为?tox/detox 同样找不到除了 3.4/3.5 之外的任何 …
我使用的pyenv,pyenv-virtualenv用于管理蟒蛇虚拟环境。
我有一个在Python 3.4虚拟环境中工作的项目。
因此,所有已安装的软件包(pandas,numpy等)都不是最新版本。
我要做的是将Python版本从3.4 升级到3.6,以及将其他软件包版本升级到更高版本。
我如何轻松做到这一点?
user@syyun:~$ pyenv install 3.6.3
Downloading Python-3.6.3.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Installing Python-3.6.3...
BUILD FAILED (Ubuntu 16.04 using python-build 1.1.5-8-g7b9d1a4)
Inspect or clean up the working tree at /tmp/python-build.20171020004725.32507
Results logged to /tmp/python-build.20171020004725.32507.log
Last 10 log lines:
ensurepip._main()
File "/tmp/python-build.20171020004725.32507/Python-3.6.3/Lib/ensurepip/__init__.py", line 189, in _main
default_pip=args.default_pip,
File "/tmp/python-build.20171020004725.32507/Python-3.6.3/Lib/ensurepip/__init__.py", line 102, in bootstrap
_run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/tmp/python-build.20171020004725.32507/Python-3.6.3/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip
zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] …Run Code Online (Sandbox Code Playgroud) 我使用安装在 pyenv 中的 python3.6.1。我在我的代码上运行 gdb 时遇到问题。当我运行gdb --args python mycode.py它以错误结束"/home/vydra/.pyenv/shims/python": not in executable format: File format not recognized
关于 pyenv:https : //github.com/pyenv/pyenv
我有这个:
$ pyenv global 2.7
$ python --version
Python 3.6.4
Run Code Online (Sandbox Code Playgroud)
我的 pyenv 版本是:
pyenv 1.2.2
Run Code Online (Sandbox Code Playgroud)
有谁知道为任何特定 shell(和子 shell)设置 python 版本的正确方法吗?
这让我很困惑,我不知道这意味着什么。我的计算机(MacOS)上安装了 3.6.4,但它不想工作。
我想不出任何解决方案,也不知道该怎么办。
pyenv ×10
python ×9
python-3.x ×2
blockchain ×1
boost-python ×1
gdb ×1
homebrew ×1
json ×1
module ×1
python-2.7 ×1
python-c-api ×1
tox ×1
virtualenv ×1