簡體   English   中英

通過python創建虛擬主機

[英]Creation of virtual host through python

我已經創建了一個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()

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()

io模塊是在Python 2.6中引入的,因此在2.4中不存在。 文檔

2.6版中的新功能。

open關鍵字應該適用於你在這里做的事情。

我從來沒有使用過python 2.4,但是文檔中說io模塊已經添加到2.6版本中了,所以你不能在2.4中導入它。

我認為open已經是2.4中的內置函數了,所以簡單地刪除from io import open就足夠了。

Python 2.4中不存在io模塊。 您對open的使用很簡單,因此您可以省略該行,open語句仍然可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM