我最近安装了 pyenv,以便在每个项目的基础上在几个竞争的 python 解释器之间切换。因此,将入口点python setup.py develop放置在. 但是,从命令行调用这些脚本之一(例如:) 会导致错误:找不到该命令。console_script~/.pyenv/versions/3.4.3/bin$ my_entry_point_script
我该如何解决这个问题?$PATH这是、$PTHONPATH、 其他问题吗?作为参考,我的 shell (fish)status --is-interactive; and . (pyenv init -lpsub)在启动时执行。
编辑: 正确的解决方案将保持不同版本的 python 之间的清晰分离。
我正在尝试构建一个gliderlabs/alpine:latest仅包含pyenv及其依赖关系的docker镜像.我希望这个容器能够通过pyenv安装和执行任意解释器.
我从以下Dockerfile开始:
FROM gliderlabs/alpine:latest
RUN apk-install curl \
ca-certificates \
bash \
git \
openssl-dev \
readline-dev \
bzip2-dev \
sqlite-dev \
build-base
RUN curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer -o /pyenv-installer
RUN touch /root/.bashrc && \
/bin/ln -s /root/.bashrc /root/.bash_profile && \
/bin/bash /pyenv-installer && \
rm /pyenv-installer && \
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile && \
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile && \
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
ENV HOME /root
ENV PYENV_ROOT $HOME/.pyenv
ENV PATH …Run Code Online (Sandbox Code Playgroud) 我安装了2个pyenv版本
pyenv versions
system
* 2.7 (set by ../.python-version)
3.5.3
Run Code Online (Sandbox Code Playgroud)
当我virtualenv在项目目录中创建一个内部目录时,我希望它virtualenv为当前的pyenvpython版本创建一个2.7
但是当我使用创建一个 mkvirtualenv whatever
虚拟环境正在创建python3 virtualenv
ll ~/.virtualenvs/mobile2/bin
total 5800
-rw-r--r-- 1 ohadperry staff 2.0K Sep 6 10:59 activate
-rw-r--r-- 1 ohadperry staff 1.0K Sep 6 10:59 activate.csh
-rw-r--r-- 1 ohadperry staff 2.1K Sep 6 10:59 activate.fish
-rw-r--r-- 1 ohadperry staff 1.1K Sep 6 10:59 activate_this.py
-rwxr-xr-x 1 ohadperry staff 266B Sep 6 10:59 easy_install
-rwxr-xr-x 1 ohadperry staff 266B Sep 6 10:59 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 pipfile 安装需求,但是当我键入pipenv并按 Enter 键时,我收到此错误消息-bash: /Users/jkelly/.local/bin/pipenv: /usr/local/Cellar/python/3.7.0/bin/python3.7: bad interpreter: No such file or directory此 python 目录不存在。我无法执行 pipenv。
python --version返回Python 3.6.6。我使用 pyenv 管理我所有版本的 python。
这是我所有 pyenv 垫片的完整列表
/Users/jkelly/.pyenv/shims/2to3
/Users/jkelly/.pyenv/shims/2to3-3.6
/Users/jkelly/.pyenv/shims/easy_install
/Users/jkelly/.pyenv/shims/easy_install-3.6
/Users/jkelly/.pyenv/shims/idle
/Users/jkelly/.pyenv/shims/idle3
/Users/jkelly/.pyenv/shims/idle3.6
/Users/jkelly/.pyenv/shims/pip
/Users/jkelly/.pyenv/shims/pip3
/Users/jkelly/.pyenv/shims/pip3.6
/Users/jkelly/.pyenv/shims/pydoc
/Users/jkelly/.pyenv/shims/pydoc3
/Users/jkelly/.pyenv/shims/pydoc3.6
/Users/jkelly/.pyenv/shims/python
/Users/jkelly/.pyenv/shims/python-config
/Users/jkelly/.pyenv/shims/python3
/Users/jkelly/.pyenv/shims/python3-config
/Users/jkelly/.pyenv/shims/python3.6
/Users/jkelly/.pyenv/shims/python3.6-config
/Users/jkelly/.pyenv/shims/python3.6m
/Users/jkelly/.pyenv/shims/python3.6m-config
/Users/jkelly/.pyenv/shims/pyvenv
/Users/jkelly/.pyenv/shims/pyvenv-3.6
Run Code Online (Sandbox Code Playgroud)
pipenv 是通过 pipi 安装的。这个错误似乎与 Pipfile 无关。我必须在某处有一个配置不正确的路径。
export PATH=/Users/jkelly/.local/bin:$PATH
export PYENV_SHELL=bash
eval "$(pyenv init -)"
export PATH="/usr/local/opt/mongodb@3.6/bin:$PATH"
export PATH="/usr/local/opt/node@6/bin:$PATH"
export PATH="/usr/local/opt/gettext/bin:$PATH"
export NVM_DIR="$HOME/.nvm"
[ -s …Run Code Online (Sandbox Code Playgroud) 我无法使用 pyenv-win 安装 3.6.10,只能安装 3.6.8 ref。
虽然我无法使用ref将其变成全局 python 版本pyenv global
我按照此处的指导安装了 pyenv-win ,但失败,输出如下。既然您知道修复方法,请分享。
ps 我也在 pyenv-win github home 上发布了这个
:: [错误] :: 404 :: 找不到文件
我的完整命令和输出如下
PS C:\Users\namgivu> pyenv install 3.6.10
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Downloading] :: 3.6.10 ...
:: [Downloading] :: From https://www.python.org/ftp/python/3.6.10/python-3.6.10.exe
:: [Downloading] :: To C:\Users\namgivu\.pyenv\pyenv-win\install_cache\python-3.6.10.exe
:: [ERROR] :: 404 :: file not found
Run Code Online (Sandbox Code Playgroud)
用3.6.8重试,可以成功;尽管无法pyenv global将其设置为让我的 Windows 操作系统全局使用此 3.6.8,而不是之前安装的 3.7.7。这个问题也可以在这里讨论
PS C:\Users\namgivu> pyenv install …Run Code Online (Sandbox Code Playgroud) 在当前操作系统的 Mac 上,系统 python 仍然是 2.7。我已经安装了 pyenv,并成功安装了 3.7.3。
\ndandonaldson@Dans-MacBook-Pro-2 gpt-2 % pyenv local\n3.7.3\ndandonaldson@Dans-MacBook-Pro-2 gpt-2 % pyenv global\n3.7.3\ndandonaldson@Dans-MacBook-Pro-2 gpt-2 % \nRun Code Online (Sandbox Code Playgroud)\n如果我现在尝试安装 pipx,作为安装软件包的一种方式,我得到
\ndandonaldson@Dans-MacBook-Pro-2 gpt-2 % pip install --user pipx \nDEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support\nCollecting …Run Code Online (Sandbox Code Playgroud) 我的系统 Python 版本是 3.8.5,但是我使用 pyenv 来管理附加版本 3.6.0,以镜像我的项目部署到的服务器版本。我以前使用 virtualenv + virtualenvwrapper 来管理我的虚拟环境,但我听说过 pipenv 很棒的东西,我想我会试一试。在我尝试使用 Python 3.6.0 之前,一切都很好。流程是这样的:
$ mkdir test_project && cd test_project
$ pyenv shell 3.6.0
$ pipenv install django
Creating a virtualenv for this project…
Pipfile: /home/user/projects/test_project/Pipfile
Using /home/user/.pyenv/shims/python (3.6.0) to create virtualenv…
? Creating virtual environment...created virtual environment CPython3.8.5.final.0-64 in 130ms
creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/test_project-eAvoynKo-/home/user, clear=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
? Successfully created virtual environment!
Traceback (most recent …Run Code Online (Sandbox Code Playgroud) 是否可以使用诸如此类的工具在 M1 macbook 上安装具有不同架构的 2 个不同版本的 python pyenv?
例如,我想要3.9.1在 ARM 和3.8.5x86 上(通过 Rosetta)。
我pyenv已经安装了新的homebrew 3.0.0. 这样,我就可以为 ARM 安装 3.9.1 ( pyenv install 3.9.1)。我现在可以通过罗塞塔获得另一个版本吗?
我使用pyenv来支持拥有不同版本的 python。
在使用 python 3.7的项目中,我还希望在进行代码更改时使用预提交进行linting 。
但是当 lint 规则运行时,预提交似乎正在用户下的缓存文件夹中查找 python 包,因此无法找到它们......即使它们安装在系统级别。例如:
>git ci -m'lint test'
...
...
/Users/[]/.cache/pre-commit/repo180cws4u/py_env-python3.7/lib/python3.7/site-packages/
...
ModuleNotFoundError: No module named 'six'
>pip list | grep six
six 1.11.0
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题。(一位同事通过运行/Users/[]/.cache/pre-commit/repo180cws4u/bin/python install -m six解决了问题,但感觉不对..必须可以配置为使用系统包或类似的......?
我正在运行最新版本的 Kali Linux:
\nuname -a \nLinux User 5.14.0-kali4-amd64 #1 SMP Debian 5.14.16-1kali1 (2021-11-05) x86_64 GNU/Linux\nRun Code Online (Sandbox Code Playgroud)\n它已经随 Python 3.9.8 一起提供了。但我需要安装Python 2.7。所以我首先安装了它sudo apt install python2.7.18.但是发生了以下情况:
python -V \nCommand \'python\' not found, did you mean:\n command \'python3\' from deb python3\n command \'python\' from deb python-is-python3\n\npython2 -V \nPython 2.7.18\n\npython3 -V \nPython 3.9.8\nRun Code Online (Sandbox Code Playgroud)\n还:
\nwhich python\npython not found\nRun Code Online (Sandbox Code Playgroud)\n我尝试过的:
\n我检查了/usr/opt/、/usr/bin/等位置/usr/share/。我检查/usr/bin并找到了 python2 和 python3 二进制文件:
所以我估计是python环境变量没有设置。我添加python=/usr/bin/python2 …
pyenv ×10
python ×10
linux ×2
pipenv ×2
alpine-linux ×1
apple-m1 ×1
docker ×1
homebrew ×1
kali-linux ×1
module ×1
path ×1
pre-commit ×1
python-2.x ×1
python-3.x ×1
setuptools ×1
virtualenv ×1
windows-10 ×1