我想通过使用 pyenv 和 ansible 来安装 python3.x。
- name: install pyenv
git: >
repo=https://github.com/pyenv/pyenv.git
dest=/home/www/.pyenv
accept_hostkey=yes
become: yes
become_user: www
- name: enable pyenv
shell: |
echo 'export PYENV_ROOT="/home/www/.pyenv"' >> /home/www/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /home/www/.bashrc
echo 'eval "$(pyenv init -)"' >> /home/www/.bashrc
- name: install python
shell: pyenv install 3.4.3
Run Code Online (Sandbox Code Playgroud)
如何使用ansible安装python3.x?
关于如何为pyenv设置Python版本的任何建议?
例如
$ python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
$ pyenv local
pyenv: no local version configured for this directory
$ pyenv local 3.6.0
pyenv: version `3.6.0' not installed
$ pyenv local v3.6.0:41df79263a11
pyenv: version `v3.6.0' not installed
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Apache 服务器上运行 python Web 应用程序。我已经安装了 mod_wsgi:
sudo apt-get install libapache2-mod-wsgi。
这是我的站点配置文件:
<virtualhost *:80>
ServerName 192.168.60.144
WSGIDaemonProcess myapp.dev processes=1 threads=1 python-home="/home/user/.pyenv/versions/3.6.1" python-path="/home/user/API" home='/home/user/API'
WSGIProcessGroup myapp.dev
WSGIScriptAlias / /home/user/API/config_files/myservice.wsgi.py
<Directory /home/user/API>
Order allow,deny
Allow from all
</Directory>
DocumentRoot /home/user/API/myservice/testdir
<Directory />
AllowOverride None
Require all granted
</Directory>
</virtualhost>
Run Code Online (Sandbox Code Playgroud)
但是,当尝试访问网络应用程序时,我收到“内部服务器错误”。这是日志中的错误:
[Mon Mar 12 13:34:04.054636 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi (pid=6762): 目标 WSGI 脚本'/home/user/API/config_files /myservice.wsgi.py' 无法作为 Python 模块加载。[Mon Mar 12 13:34:04.054665 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi …
试图为陷入失修状态的 django 包注入活力。他们使用 tox 进行测试,所以我在我的 MacBook 上设置了 pyenv。我已经安装了 3 个版本的 python,如下所示,一切看起来都应该可以工作,但如果是这样,我就不会问为什么不行。
我用 ~ 替换了我的主目录,使其更易于阅读。
pyenv 已安装,brew install pyenv并安装了各种版本的 pythonpyenv install #.#.#
垫片存在:
$ echo $PATH
~/.pyenv/shims:~/.platformsh/bin:/usr/local/sbin:...
$ which python3.6
~/.pyenv/shims/python3.6
$ which python3.4
~/.pyenv/shims/python3.4
$ which python3.5
~/.pyenv/shims/python3.5
Run Code Online (Sandbox Code Playgroud)
但是执行它们并没有按预期工作:
$ pyenv local 3.4.9 3.5.6 3.6.8
$ python3.4
Python 3.4.9 (default, Feb 12 2019, 10:33:47)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ python3.5
pyenv: python3.5: …Run Code Online (Sandbox Code Playgroud) 尝试使用 pyenv 在 macOS 上构建 python 版本,但我所做的每次安装都以
? python
>>> import lzma
ModuleNotFoundError: No module named '_lzma'
Run Code Online (Sandbox Code Playgroud)
我已经安装了以下所有软件包:
brew install openssl readline sqlite3 xz zlib
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是 homebrew 将软件包安装到~/.brew.
任何意见都会受到赞赏。
所以这是我的 Ubuntu 版本:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行以下命令:pyenv install 3.6.2但出现错误:
Command 'pyenv' not found, did you mean:
command 'pyvenv' from deb python3-venv
command 'p7env' from deb libnss3-tools
Run Code Online (Sandbox Code Playgroud)
我已经搜索过了,这篇文章(Ubuntu 14.04 - Python 3.4 - pyenv: command Not Found)指出 Ubuntu 14.04 及以下默认使用 Python 2,因此必须使用 Python 2 virtualenv,但为什么我的 18.04 Ubuntu 无法识别该命令?
正如标题所述——我可以将 setup.py 与 pipelinenv 与 pyenv 一起使用来管理我的环境、版本和依赖项吗?
\n我有一个带有 setup.py 文件的目录结构形式的 python 包。
\n我喜欢使用 Pipenv 作为我的项目环境管理器——我使用 pyenv 来管理我的多个 python 版本。
\n所以我想做的是:
\npyenv version 3.8.5pipenv install foobar\nInstalling foobar\xe2\x80\xa6\nError: An error occurred while installing foobar!\nError text:\nERROR: Could not find a version that satisfies the …Run Code Online (Sandbox Code Playgroud) 我在windows10上:PS C:\Users\hp\Documents\Projects>pip install pip --target $HOME\\.pyenv
pyenv安装成功。
PS C:\Users\hp\Documents\Projects>pyenv
The term 'pyenv' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Run Code Online (Sandbox Code Playgroud) 由于错误的原因,我通过运行更新了我的 pyenv ,pyenv update此后每次打开新控制台时都会出现此错误
WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加到我的 .zshrc 中:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
fi
Run Code Online (Sandbox Code Playgroud)
这是在其他帖子和问题中推荐的,但在这种情况下,我收到了另一条错误消息:
Failed to initialize virtualenvwrapper.
Perhaps pyenv-virtualenvwrapper has not been loaded into your shell properly.
Please restart current shell and try again.
Run Code Online (Sandbox Code Playgroud)
更多信息:
系统:MacOS Catalina 10.15.7 Pyenv 2.0.2 版
谢谢你们
I\xe2\x80\x99m 遇到与此处引用的关于使用 Pyenv 在 Amazon Linux 2 上编译 Python 3.7+完全相同的问题。我\xe2\x80\x99已经尝试从源代码构建openssl1.1,但由于未编译openssl,仍然出现构建失败的相同错误。按照建议的说明,将正确的标志变量设置为 openssl 的路径,然后运行 Pyenv install 仍然无法\xe2\x80\x99 工作。有人在 Amazon Linux 上有解决方案吗?
\npyenv ×10
python ×8
macos ×2
amazon-ec2 ×1
ansible ×1
apache ×1
homebrew ×1
lzma ×1
mod-wsgi ×1
openssl ×1
pipenv ×1
python-3.4 ×1
python-3.x ×1
setup.py ×1
tox ×1
ubuntu ×1
ubuntu-18.04 ×1
virtualenv ×1
windows-10 ×1