Python ImportError在virtualenv解释器中运行源代码,但在控制台中尝试直接导入时不运行

Python ImportError在virtualenv解释器中运行源代码,但在控制台中尝试直接导入时不运行,python,bash,virtualenv,gdata,importerror,Python,Bash,Virtualenv,Gdata,Importerror,我正在使用virtualenv设置python环境以运行一些脚本。当我运行脚本时,我只得到了我的一个包的导入错误-gdata 我可以在控制台中手动激活我的virtualenv,进入解释器交互模式,并在其中成功导入gdata模块,不会出错。但是,当我从虚拟环境中运行一个脚本(它导入完全相同的模块)时,我得到了ImportError Traceback (most recent call last): File ".../src/writer/gdata.py", line 4, in <

我正在使用virtualenv设置python环境以运行一些脚本。当我运行脚本时,我只得到了我的一个包的导入错误-gdata

我可以在控制台中手动激活我的virtualenv,进入解释器交互模式,并在其中成功导入gdata模块,不会出错。但是,当我从虚拟环境中运行一个脚本(它导入完全相同的模块)时,我得到了
ImportError

Traceback (most recent call last):
  File ".../src/writer/gdata.py", line 4, in <module>
    from gdata.docs.client import DocsClient
ImportError: No module named docs.client
下面是我运行的主要bash脚本,用于激活virtualenv并运行引发错误的脚本:

#!/bin/bash
set -e 
python env-setup.py
echo "Setup has run"
python env-bootstrap.py $HOME/virtualenv/my-virtualenv/ --verbose
echo "Bootstrap has run"
echo `which python`
source $HOME/virtualenv/my-virtualenv/bin/activate

echo "Virtualenv activated"
echo `which python`
python src/main.py

deactivate
我正在使用哪种python来确保在激活virtualenv之后,解释器的正确版本确实被使用了——这也可以通过我没有收到pandas或numpy的导入错误这一事实得到证实


关于如何解决问题有什么想法吗?

显然,您在
src/writer/gdata.py
中有一个自己的
gdata
模块,Python认为这是您正在寻找的
gdata
,而不是您安装到VirtualNV中的包。尝试将您的
gdata.py
重命名为其他名称。

Oooooooooh!!!!真不敢相信我竟然没想到。现在看来很明显。非常感谢。
#!/bin/bash
set -e 
python env-setup.py
echo "Setup has run"
python env-bootstrap.py $HOME/virtualenv/my-virtualenv/ --verbose
echo "Bootstrap has run"
echo `which python`
source $HOME/virtualenv/my-virtualenv/bin/activate

echo "Virtualenv activated"
echo `which python`
python src/main.py

deactivate