【问题标题】:How to activate virtualenv in Cygwin after copying the virtualenv folder复制 virtualenv 文件夹后如何在 Cygwin 中激活 virtualenv
【发布时间】:2017-01-05 06:54:19
【问题描述】:

这里是初学者。试图构建一个烧瓶网络应用程序。使用 Windows 8。

在 Cygwin 中激活我的 python virtualenv 时遇到一些问题。到目前为止,我一直在使用 git shell,没有任何问题。

我将我的文件夹(“app”)复制到我的 cygwin 主目录中,它的设置如下:

app - templates
    - static
    - flask - env - scripts - python
                  - ...
    - hello.py
    - ...

我将目录更改为 app 文件夹,然后当我键入命令以激活我的 virtualenv 时:

$ source flask/env/scripts/activate

终端显示:

(env)

所以我假设它正在工作,直到我仔细检查哪个 python:

$ which python

这将返回我原来的全局 python 安装,而不是虚拟环境。我检查了已安装的软件包以仔细检查我使用的是哪个 python 环境。

我在 git shell 中使用相同的命令,它会激活正确的 virtualenv。我哪里错了/我需要改变什么?如果您需要更多信息,请告诉我。

我使用 cygwin 创建了一个新的虚拟环境,当我激活新的环境时,它切换到那个环境很好。为什么它不适用于我复制的文件夹?

【问题讨论】:

    标签: python shell cygwin virtualenv


    【解决方案1】:

    我使用 cygwin 创建了一个新的虚拟环境,当我激活新的环境时,它切换到那个环境很好。 为什么它不适用于我复制到的文件夹?

    最后一句话才是真正的问题。您尝试激活的方式是正确的。问题是virtualenv目录不能移动。

    virtualenv 内的 activate 脚本在内部使用绝对路径。如果您移动目录,路径将不再有效,因此which python 会在PATH 上找到第一个有效的二进制文件,这是您的全局二进制文件。

    如果您需要将项目移动到不同的位置,并且 virtualenv 与它一起,那么重新创建 virtualenv,不要复制它。 推荐的做法是有一个requirements.txt 文件,并使用pip install -r requirements.txt 安装包。 这样,重新创建一个 virtualenv 就很容易了:创建一个空的 virtualenv,然后运行pip ... 命令。 virtualenv 中应该没有其他需要移动的东西,只有 pip 放在那里的东西,或者其他 python 安装程序脚本,如果你使用了任何东西(除了pip,你还需要重新运行)。

    【讨论】:

    • 这并没有回答标题中的问题,但我一直在回来,因为它具有非常好的 SEO。
    • @Grault 这是具有误导性的问题标题。我现在修好了。感谢您指出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2018-07-11
    • 2013-08-30
    相关资源
    最近更新 更多