当前位置: 首页 > 面试题库 >

shell脚本中无法使用virtualenvwrapper函数

宋望
2023-03-14
问题内容

因此,我再次制作了一个不错的python程序,它使我的生活变得更加轻松,并节省了大量时间。当然,这涉及一个由virtualenvwrappermkvirtualenv功能制成的virtualenv。该项目有一个requests.txt文件,其中包含一些必需的库(也要求:D),如果没有这些库,该程序将无法运行。

我试图添加一个bin/run- app可执行的外壳脚本,该脚本将位于我的路径中(实际上是符号链接)。现在,在此脚本中,我需要先切换到virtualenv,然后才能运行该程序。所以我把它放进去

#!/bin/bash
# cd into the project directory
workon "$(cat .venv)"
python main.py

文件.venv包含virtualenv名称。但是,当我运行此脚本时,workon: command not found出现错误。

当然,我的bashrc中有virtualenvwrapper.sh,但在此shell脚本中似乎不可用。

那么,如何在这里访问这些virtualenvwrapper函数?还是我做错了这个方法?如何启动每个都有自己的virtualenv!的python工具?


问题答案:

只需在virtualenvwrapper.sh脚本中提供脚本以导入virtualenvwrapper的功能即可。然后,您应该能够workon在脚本中使用该功能。

也许更好,你可以创建一个shell脚本(你能说出它venv- run.sh为例)运行任何Python脚本到一个给定的virtualenv,并将其放置在/usr/bin/usr/local/bin或任何这是你的目录PATH

这样的脚本如下所示:

#!/bin/sh
# if virtualenvwrapper.sh is in your PATH (i.e. installed with pip)
source `which virtualenvwrapper.sh`
#source /path/to/virtualenvwrapper.sh # if it's not in your PATH
workon $1
python $2
deactivate

可以简单地像 venv-run.sh my_virtualenv /path/to/script.py



 类似资料:
  • 问题内容: 我正在尝试从下面的JSON文件中获取密钥: 我刚刚执行了以下命令,它将给出以下JSON输出 命令: 输出: 我只想获取以下格式的输出,不确定如何获取。 预期产量: 如何从每个数组中获取键值并像上面一样显示?JIRA-n将根据结果增加。 问题答案: 给定一个数组,您可以用来将索引和值的数组映射到该数组。然后,您可以使用或映射到对象上所需的键和值。 https://jqplay.org/s

  • 问题内容: 我试图弄清楚如何从Shell脚本调用Python函数。 我有一个具有多个功能的Python文件,我需要在我的shell脚本中使用它们返回的值。有没有办法做到这一点。 我这样做是为了使用Python读取配置文件并在shell中获取值。还有其他更好的方法来实现这一目标。 包含: 我需要将Python函数返回的值存储在shell变量中。 问题答案: 您可以通过要求Python解释器打印结果来

  • 我在尝试编译 eXo 平台时遇到麻烦。 错误消息是: < code >原因:java.io.IOException:无法运行程序“/exo/platform-public-distributions-develop/PLF-community-Tomcat-standalone/target/platform-community-5.0 . x-SNAPSHOT/platform-communit

  • 本文向大家介绍Shell脚本实现ftok函数,包括了Shell脚本实现ftok函数的使用技巧和注意事项,需要的朋友参考一下 “古老的 Sys IPC 仍然有好几种有效的用途。三种 IPC 对象是共享内存,信号灯和消息。”当使用到 IPC 的这些对象时,你需要为每个对象创建一个 Key。虽然理论上来说我们在定义一个 IPC Key 的时候可以使用任意自己喜欢的 Key ,但为了避免与其他的程序产生定

  • 问题内容: 我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示: 运行此脚本文件将在新调用的bash中运行容器。 现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器内(例如:cd /path/to/test.sh && ./test.sh),该怎么做? 问题答案: 您可以使用以下命令在正在运行的容器中运行命令: 并从bash会话运

  • 本文向大家介绍Shell脚本数组用法小结,包括了Shell脚本数组用法小结的使用技巧和注意事项,需要的朋友参考一下 array作为一种数据结构,在一些高级语言中都是有直接提供和实现的,当然我shell中也是有的哈。 PS:写这篇文章的原因是B哥在群里发了一个截图: 我大B哥依然是全能型人才哈。。。废话少说,说下正题 1、怎么声明一个数组变量? 直接赋值: declare声明: 小括号空格法: 引号