【问题标题】:virtualenv command not found after installed with MacPorts安装 MacPorts 后找不到 virtualenv 命令
【发布时间】:2011-07-08 02:21:09
【问题描述】:

我通过 mac 上的 mac 端口安装了 python 2.7。我通过macports安装了virtualenv(py27-virtualenv @1.6.1_0(活动)。发出命令时:virtualenv demo_venv --no-site-packages,我得到这个错误:-bash:virtualenv:command not found。它没有选择virtualenv up @ all,所以我需要将它符号链接到我的 python27 位置吗?

【问题讨论】:

  • 在 bash 提示符下运行 which virtualenv 会得到什么?
  • 没什么。它只是回到一个空的 bash 提示符。
  • 好的,这意味着它不在你的路径中。
  • 我就是这么想的。现在正在修复它。再次感谢。

标签: python virtualenv macports


【解决方案1】:

如您所述,MacPorts 提供了多个版本的 pyXX-virtualenv 软件包。您需要告诉 MacPorts 您要默认使用哪些版本:

port select --list virtualenv
port select --set virtualenv virtualenv27
which virtualenv

在此之后,您应该可以只输入virtualenv(假设 MacPorts bin 目录在您的路径中)。

【讨论】:

  • 这个答案应该是正确的。这是在 MacPorts 中处理此问题的正确方法。
  • 这确实是正确的方法。此外,对于 zsh 用户,请确保在执行 port select 之后发出 rehash
【解决方案2】:

命令是virtualenv-2.7,而不仅仅是virtualenv

如果查看包内容,可以看到没有安装名为 virtualenv 的可执行文件。

【讨论】:

    【解决方案3】:

    MacPorts 在/opt/local/bin(MacPorts 的默认位置)中安装指向virtualenv 的版本化链接。使用 MacPorts 时,您需要确保 /opt/local/bin 在您的 shell PATH 环境变量中。在这里,我同时显示了 py26-virtualenvpy27-virtualenv 安装:

    $ echo $PATH
    /opt/local/Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Developer/Tools
    $ ls -l /opt/local/bin/virtuale*
    lrwxr-x---  1 root  admin  13 Oct 15  2009 /opt/local/bin/virtualenv@ -> virtualenv2.6
    lrwxr-xr-x  1 root  wheel  74 May 17 02:20 /opt/local/bin/virtualenv-2.6@ -> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenv
    lrwxr-xr-x  1 root  wheel  74 May 17 02:29 /opt/local/bin/virtualenv-2.7@ -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv
    lrwxr-xr-x  1 root  wheel  88 Jun 27  2010 /opt/local/bin/virtualenvwrapper_bashrc-2.6@ -> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvw
    

    一般来说,如果您想知道 MacPort 端口安装了哪些文件以及安装在哪里,请使用port contents 查找:

    $ port contents py27-virtualenv
    Port py27-virtualenv contains:
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/PKG-INFO
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/SOURCES.txt
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/dependency_links.txt
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/entry_points.txt
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/not-zip-safe
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.1-py2.7.egg-info/top_level.txt
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.pyc
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/__init__.py
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/__init__.pyc
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/distribute-0.6.16.tar.gz
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/pip-1.0.1.tar.gz
      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv_support/setuptools-0.6c11-py2.7.egg
      /opt/local/bin/virtualenv-2.7
      /opt/local/share/doc/py27-virtualenv/index.txt
      /opt/local/share/doc/py27-virtualenv/news.txt
    

    【讨论】:

    • 当我这样做时:端口内容 py27-virtualenv 我得到了你所拥有的。 Python2.7 运行良好 & py27-virtualenv 表示它已通过 macports 安装和(活动)。当我去的时候: which virtualenv 我在返回时仍然得到一个空的 bash shell。我尝试了一个符号链接: sudo ln -s /opt/local/var/macports/software/py27-virutalenv /opt/local/bin 并且它仍然无法正常工作。我最初尝试了没有 sudo 的符号链接,但我的权限被拒绝了。我认为 Macports 不喜欢那样。我的这个设置在另一台 Mac 上运行良好,但这个设置让我很头疼。我不确定问题是什么。谢谢。
    • 我也明白了: -- demetriusford$ ls -l /opt/local/bin/virtuale* lrwxr-xr-x 1 root admin 74 Jul 6 16:27 /opt/local/bin/ virtualenv-2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv
    • 您的PATH 是否包含/opt/local/bin?创建后是否激活环境?试试这个:/opt/local/bin/virtualenv-2.7 my_ve ; source ./my_ve/bin/activate。如果这不起作用,请准确显示您看到的结果。
    • 行得通。我有另一台安装了 python27 和 py27-virtualenv 的机器,我正在使用: virtualenv demo_venv --no-site-packages ; source demo_venv/bin/activate & 它工作得很好。在这个新的 mac 设置上它不起作用,但你给出的命令就像一个魅力。再次感谢。
    • 听起来您需要将/opt/local/bin 添加到您的shell 启动文件中,例如,将类似的内容添加到~/.bash_profileexport PATH=$PATH:/opt/local/bin。 (顺便说一句,你知道你可以改变你接受的答案:=))
    【解决方案4】:

    如果您使用 virtualenvwrapper,您可以配置您的 shell 环境以指向正确的 virtualenv 脚本。安装 py27-virtualenvwrapper 端口并将这些行添加到您的 Bash 配置文件中:

    export VIRTUALENVWRAPPER_VIRTUALENV=/opt/local/bin/virtualenv-2.7
    source /opt/local/bin/virtualenvwrapper.sh-2.7
    

    当您使用 virtualenvwrapper 命令时,不需要其他路径黑客或符号链接:

    % mkvirtualenv demo_venv --no-site-packages
    

    【讨论】:

      【解决方案5】:

      您需要确保 virtualenv 在您的 PATH 中,但如果安装正确,它应该是。

      【讨论】:

      • 我现在正在检查。它应该在我的路上,不知道为什么不会。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 2013-03-12
      • 2013-03-28
      • 2016-11-04
      • 2022-01-12
      • 2018-06-17
      • 2014-09-25
      相关资源
      最近更新 更多