ubuntu - 使用 venv 在 WSL 中安装 Python 要求时出现问题

标签 ubuntu pip wsl-2 python-venv

我有一个来自供应商的代码存储库,我正在尝试以与他们完全相同的方式设置我的本地系统(尽可能)
我已经在 Windows 的 WSL 中运行 Ubuntu,所以我想我也会尝试将此系统用于此供应商存储库。在 repo 中有一个 shell 脚本,如下所示:

#!/bin/bash
cd /home/vendorname/vendor-app
. /home/vendorname/.virtualenvs/vendor-app/bin/activate
. /home/vendorname/vendor-app/vendor-environment.sh
python3 /home/vendorname/vendor-app/vendor_script.py
对于参数的情况,让我们将此文件称为“runner.sh”
首先要注意的是,我的 Ubuntu/WSL 中没有名为“vendorname”的用户,正如 home 下 vendorname 文件夹的位置所建议的那样。不确定这是否是一个问题,但它可能是。
其次,我设置的文件结构与这个 shell 脚本似乎表明的完全相同。我已将代码存储库放在/home/vendorname 下,并使用 venv 创建位于/home/vendorname/.virtualenvs/vendor-app 下的虚拟环境。
我还使用以下命令激活了我的虚拟环境:
source /home/vendorname/.virtualenvs/vendor-app/bin/activate
我的问题
当我从命令行运行 runner.sh 文件时,出现以下错误:
Traceback (most recent call last):
  File "/home/vendorname/vendor-app/vendor_script.py", line 17, in <module>
    import requests
ModuleNotFoundError: No Module named 'requests'
此错误似乎表明未安装请求模块,但是每当我尝试安装它时,我都会收到“要求已满足”响应。
有任何想法吗?

最佳答案

问题出在 shell 脚本的第 3 行:

#!/bin/bash
cd /home/vendorname/vendor-app
. /home/vendorname/.virtualenvs/vendor-app/bin/activate
. /home/vendorname/vendor-app/vendor-environment.sh
python3 /home/vendorname/vendor-app/vendor_script.py
应该是这样的:
#!/bin/bash
cd /home/vendorname/vendor-app
. source /home/vendorname/.virtualenvs/vendor-app/bin/activate
. /home/vendorname/vendor-app/vendor-environment.sh
python3 /home/vendorname/vendor-app/vendor_script.py
不知道这是如何工作的,但这在本地解决了我的问题

关于ubuntu - 使用 venv 在 WSL 中安装 Python 要求时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72321816/

相关文章:

ruby - 安装 Eclipse 和 Ruby 插件时出现问题

ruby - 在 ubuntu 13.10 上安装 webistrano

python - "python setup.py install"没有在 virtualenv 中安装

python - 属性错误 : 'module' object has no attribute 'python_implementation' running pip

kubernetes - 在 WSL2 中安装 Minikube 集群时无法访问已部署的服务

ubuntu - 我无法在 WSL2 开启的 Windows 10 上使用 npm 命令(ubuntu 终端)

ruby-on-rails - 如何检查rails环境?

ubuntu - 当其他列值在 Ubuntu 中的引号内有逗号时,将一个列值复制到 CSV 中的另一个

python - pip install 在带有 python27 interperter 的 virtualenv 中存在 SSL 问题

windows - MobaXterm 在不同的计算机登录时不断更改 DISPLAY 的位置?