我创建了一个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()
答案 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)
答案 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语句仍然可以正常工作。