2

我创建了一个 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

4 回答 4

5

io模块在 2.4 中不存在(在这种情况下您不需要使用它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()
于 2013-07-15T13:55:19.987 回答
2

io模块是在 Python 2.6 中引入的,因此在 2.4 中不存在。从文档中:

2.6 版中的新功能。

open关键字应该适用于您在此处执行的操作。

于 2013-07-15T13:52:52.937 回答
1

我从来没有用过python 2.4,但是文档说io模块已经添加到2.6版本中,所以不能在2.4中导入。

不过,我假设open它已经是 2.4 中的内置函数,因此只需删除该from io import open行就足够了。

于 2013-07-15T13:54:09.167 回答
0

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

于 2013-07-15T14:19:40.103 回答