Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上的FAB文件中使用Activate_this.py激活python虚拟环境_Python_Django_Windows Xp_Virtualenv_Fabric - Fatal编程技术网

在Windows上的FAB文件中使用Activate_this.py激活python虚拟环境

在Windows上的FAB文件中使用Activate_this.py激活python虚拟环境,python,django,windows-xp,virtualenv,fabric,Python,Django,Windows Xp,Virtualenv,Fabric,我有一个Fabric任务,需要访问Django项目的设置 在Windows上,我无法将Fabric安装到项目的virtualenv中(Paramiko+pycrypto deps存在问题)。但是,我可以在我的系统范围的站点包中安装Fabric,没有问题 我已将Django安装到项目的virtualenv中,当我使用“virtualenv\Scripts\activate.bat”脚本激活virtualenv时,我能够轻松地使用所有“>python manage.py”命令 我的项目中有一个fab

我有一个Fabric任务,需要访问Django项目的设置

在Windows上,我无法将Fabric安装到项目的virtualenv中(Paramiko+pycrypto deps存在问题)。但是,我可以在我的系统范围的站点包中安装Fabric,没有问题

我已将Django安装到项目的virtualenv中,当我使用“virtualenv\Scripts\activate.bat”脚本激活virtualenv时,我能够轻松地使用所有“>python manage.py”命令

我的项目中有一个fabric任务文件(fabfile.py),它提供安装、测试、部署等任务。fabfile中的一些任务需要通过“from django.conf import settings”访问django项目的设置

因为我唯一可用的Fabric安装是在我的系统范围的站点包中,所以我需要在我的fabfile中激活virtualenv,这样django就可以使用了。为此,我使用项目virtualenv的“activate_this”模块访问项目设置等。在执行activate_this.py之前和之后使用“print sys.path”,我可以告诉python路径的更改指向项目的virtualenv。但是,我仍然无法导入django.conf.settings

我已经能够在*nix(Ubuntu和CentOS)和Cygwin上成功地完成这项工作。您是否在Windows上使用此设置/工作流?如果是这样的话,你能帮我弄清楚为什么这在Windows上不起作用,或者提供一些技巧来解决这个问题吗

谢谢,干杯


参考:

  • |使用Virtualenv而不使用 bin/python
本地发展环境:

  • Python 2.5.4
  • Virtualenv 1.4.6
  • 织物0.9.0
  • Pip 0.6.1
  • Django 1.1.1
  • Windows XP(SP3)

您必须从fab文件中执行“激活此”。虽然我还没有测试过,但我相信以下几点应该是有效的:

activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

经过一些挖掘,我发现这是activate_this.py脚本的一个问题。在它的当前状态下,virtualenvYes这正是我在fabfile中所做的——到目前为止,它在Windows上对我不起作用。如果您能在Windows中进行快速测试并让我知道您的情况,我将不胜感激。
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
if sys.platform == 'win32':
    site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
    site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')