【发布时间】:2015-10-21 00:15:27
【问题描述】:
全部
我对运行 shell 脚本的格式有疑问 我遇到这个问题是我设置了一个虚拟环境
但是当我输入时
. venv/bin/activate
代码没有问题并成功运行。但是我知道使用其他方式运行它
./venv/bin/activate
bash 提示一个错误,说我没有权限这样做。
我不知道它们之间有什么区别,任何帮助将不胜感激
【问题讨论】:
标签: python linux shell virtualenv
全部
我对运行 shell 脚本的格式有疑问 我遇到这个问题是我设置了一个虚拟环境
但是当我输入时
. venv/bin/activate
代码没有问题并成功运行。但是我知道使用其他方式运行它
./venv/bin/activate
bash 提示一个错误,说我没有权限这样做。
我不知道它们之间有什么区别,任何帮助将不胜感激
【问题讨论】:
标签: python linux shell virtualenv
virtualenv 创建的activate 脚本实际上并不是执行任何东西的标准脚本,但它为现有bash 会话定义了更多环境变量。请注意该文件中的注释:
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
. venv/bin/activate 实际上是sourcevenv/bin/activate 的同义词。本质上,virtualenv 所做的是在 current shell 中执行许多语句(将文件的内容放到这里),而不是像执行二进制文件一样启动一个新的 shell 进程(即./venv/bin/python)。
【讨论】:
#include /path/to/envVarFile。 (取决于您的语言)。祝大家好运。
vim 不会创建 newfile,除非在 cmdline 模式下调用 :w(或等效项)。 . $file 与 source $file 之间也没有区别,它们都在当前 shell 的位置执行文件。
echo $FOO 并看到一个空行,然后创建一个名为 foo 的文件(在 vim 或其他格式中),并带有以下内容:export FOO=1,然后. foo,然后是echo $FOO。