通过python创建虚拟主机

时间:2013-07-15 13:48:44

标签: python python-2.4

我创建了一个python(我使用2.4)脚本来自动在httpd.conf中创建一个虚拟主机。但是当我运行它时会出现以下错误:

Traceback (most recent call last):
  File "ApaPy2.py", line 2, in ?
    from io import open
ImportError: No module named io

这是我的剧本

import os
from io import open
project = raw_input(u'Enter the name of project ')
domain = raw_input (u'Enter the domain ')
docroot = raw_input(u'Enter root folder ')

virtualhost=u"""
<VirtualHost *:80>
    ServerAdmin abhishek.verma@laitkor.com
    DocumentRoot /""" +docroot+ u"""/""" +project+ u"""
    ServerName """ +project+ u""".""" +domain+ u""".com
    ErrorLog logs/""" +project+ u""".com-error_log
    CustomLog logs/""" +project+ u""".com-access_log common
</VirtualHost>"""

f = open(u'/etc/httpd/conf/httpd.conf', u'a')
f.write(virtualhost)
f.close()

4 个答案:

答案 0 :(得分:5)

2.4中不存在io模块(在这种情况下,您不需要使用open)。我还会简化您的代码,使用%代替字符串格式:

project = raw_input(u'Enter the name of project ')
domain = raw_input (u'Enter the domain ')
docroot = raw_input(u'Enter root folder ')

virtualhost=u"""
<VirtualHost *:80>
    ServerAdmin abhishek.verma@laitkor.com
    DocumentRoot /%(docroot)s/%(project)s
    ServerName %(project)s.%(domain)s.com
    ErrorLog logs/%(project)s.com-error_log
    CustomLog logs/%(project)s.com-access_log common
</VirtualHost>"""

f = open(u'/etc/httpd/conf/httpd.conf', u'a')
f.write(virtualhost % dict(project=project, docroot=docroot, domain=domain)
f.close()

答案 1 :(得分:2)

io模块是在Python 2.6中引入的,因此在2.4中不存在。来自documentation

  

2.6版中的新功能。

open关键字应该可以正常运行。

答案 2 :(得分:1)

我从未使用过python 2.4,但documentation表示io模块已添加到2.6版本中,因此无法在2.4中导入。

我认为open已经是2.4中的内置函数了,所以只需删除from io import open行即可。

答案 3 :(得分:0)

Python 2.4中不存在io模块。您对open的使用很简单,因此您可以省略该行,open语句仍然可以正常工作。