如何在PowerShell中激活virtualenv?

5

我创建了一个名为 bitcoin_notifications.py 的虚拟环境,现在我要激活它,但是遇到了问题:

PS C:\Users\piotr> bitcoin_notifications\activate.ps1

bitcoin_notifications\activate.ps1 : ```The module
'bitcoin_notifications' could not be loaded. For more information, run
'Import-Module bitcoin_notifications'.``` At line:1 char:1
+ bitcoin_notifications\activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (bitcoin_notifications\activate.ps1:String) [],
CommandNotFoundException
    + FullyQualifiedErrorId : CouldNotAutoLoadModule

在之前分享的结果中,我们读到模块无法加载,如果想要更多信息,需要运行另一个特定命令。
一旦我运行它,
PS C:\Users\piotr> ```Import-Module bitcoin_notifications

Import-Module : The specified module 'bitcoin_notifications' was not
loaded because no valid module file was found in any module
directory.``` At line:1 char:1
+ Import-Module bitcoin_notifications
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (bitcoin_notifications:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : ```Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand```

我们可以理解该目录中没有模块。我只想激活虚拟环境。我该怎么做?

编辑: 我正在复制创建新虚拟环境的方法:

  1. pip install virtualenv
  2. mkdir Environments
  3. cd !$
  4. virtualenv bitcoin_notifications
  5. bitcoin_notifications\activate.ps1

错误信息表明找不到 bitcoin_notifications 模块。该模块是否正确安装? - HAL9256
说实话,我是在复制创建新虚拟环境的方法:
  1. pip install virtualenv
  2. mkdir Environments
  3. cd !$
  4. virtualenv bitcoin_notifications
  5. bitcoin_notifications\activate.ps1
- user10732864
2个回答

3

activate.ps1的前几行似乎提到了解决方案:

# This file must be dot sourced from PoSh; you cannot run it
# directly. Do this: . ./activate.ps1

所以,以下内容应该可以正常工作(根据您的方法执行步骤4和5 - 请注意,步骤5缺少了一个点!):
virtualenv bitcoin_notifications
. .\bitcoin_notifications\Scripts\activate.ps1

注:你的问题提到了“venv”,但实际上是关于“virtualenv”的。请注意,这两个工具相似但不同。此外,在第5步中,你缺少了“Scripts”部分。也许这是在编写问题时复制粘贴错误,但请确保包括它。

2
我在使用Windows 10时遇到了非常类似的问题。所以,最初我安装了Python 3.7(添加到Path),并确保pip正常工作。原始答案翻译成"最初的回答"。
PS C:\foldername> pip

然后,运行以下命令来安装virtualenv。"Original Answer"的翻译是"最初的回答"。
PS C:\foldername> pip install --upgrade setuptools
PS C:\foldername> pip install ez_setup
PS C:\foldername> pip install virtualenv

创建了一个虚拟环境文件夹并进入其中。Original Answer翻译成"最初的回答"。
PS C:\foldername> mkdir virtualenvs
PS C:\foldername> cd virtualenvs

然后,创建虚拟环境molecoder。最初的回答中已经包含了这个步骤。
PS C:\foldername\virtualenvs> virtualenv molecoder
PS C:\foldername\virtualenvs> Set-ExecutionPolicy Unrestricted -Force

最初的回答是:尝试激活它。
PS C:\foldername\virtualenvs> molecoder\Scripts\acivate

我收到了以下消息:

molecoder\Scripts\acivate : 无法加载模块“molecoder”。有关详细信息,请运行“Import-Module molecoder”。位于行:1 字符:1 + molecoder\Scripts\acivate + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (molecoder\Scripts\acivate:String) [], CommandNotFoundException + FullyQualifiedErrorId : CouldNotAutoLoadModule

在我的情况中,是因为我写成了acivate而不是activate。修改后如下:
PS C:\foldername\virtualenvs> molecoder\Scripts\activate

在您的情况下,您正在尝试激活,但激活位于envname/Scripts中,您进入了错误的位置。
要解决此问题,您只需要运行
PS C:\Users\piotr> bitcoin_notifications\Scripts\activate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接