存档

‘技术’ 分类的存档

一位高人的QTP学习笔记

2009年9月22日 没有评论

转贴一个高人的QTP笔记供大家学习。
文章比较长,一共三部分:
1、连接数据库查询例子,无参数化
//查询收文操作,通过数据库查询记录数是否正确
//1、输出记录数值,例如78条 2、获取输出的记录数值 3、连接数据库,查询记录数
4、输出记录数值和从数据库中查询记录数值,相比较,相等则成功,不等则失败
Browser(“湛江信息化测试登录”).Page(“湛江东兴石油企业有限公司办公自动化系统”).Frame(“mainFrame”).Output CheckPoint(“78”)
Dim mm
‘mm=DataTable.GlobalSheet.GetParameter(“mainFrameOutput_Text_out”).Value
//注释,获取datatable值与DataTable(“mainFrameOutput_Text_out”, dtGlobalSheet)一致
mm=DataTable(“mainFrameOutput_Text_out”, dtGlobalSheet)
MsgBox mm
Dim res,cmd,sql
Set res=createobject(“adodb.recordset”)
Set cmd=createobject(“adodb.command”)
Cmd.activec
Cmd.CommandType = 1
sql=”select count(*) from oa_receivebumf  where BUMFNAME like ‘%收文测试%'”
‘sql=”select  count(*)  from oa_receivebumf  where BUMFNAME='”&nn&”‘”
//注释,sql语句,等于时sql语句
// sql=”select  count(*)  from oa_receivebumf  where BUMFNAME like ‘%nn%'” //like时sql语句
Cmd.CommandText = sql
Set res = Cmd.Execute()
//msgbox res(“name”)
MsgBox res(0)
If   Cstr(res(0)) = Cstr(mm)Then
Reporter.ReportEvent micPass, “test”,   “查询成功”
else
Reporter.ReportEvent micfail, “test”,   “查询失败”
End If
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing 阅读全文…

分类: 技术 标签: ,

How to change the Magento Email Templates

2009年9月2日 没有评论

You’ll probably know by now that the transactional email templates in Magento are a bit, with respect, “naff”. To edit through the admin will take forever and a day so here’s a couple of useful solutions to help make things easier.

1. Locate the email templates

The Magento email templates are located in (note: “en_US” may change depending on language).

magento\app\locale\en_US\template\email\account_new.html”(24,48):
magento\app\locale\en_US\template\email\admin_password_new.html”(27,73):
magento\app\locale\en_US\template\email\newsletter_subscr_confirm.html”(28,69):
magento\app\locale\en_US\template\email\order_creditmemo.html”(23,63):
magento\app\locale\en_US\template\email\order_creditmemo.html”(75,62):
magento\app\locale\en_US\template\email\order_invoice.html”(23,63):
magento\app\locale\en_US\template\email\order_invoice.html”(75,62):
magento\app\locale\en_US\template\email\order_new.html”(23,63):
magento\app\locale\en_US\template\email\order_new.html”(79,62):
magento\app\locale\en_US\template\email\order_shipment.html”(23,63):
magento\app\locale\en_US\template\email\order_shipment.html”(81,62):
magento\app\locale\en_US\template\email\order_update.html”(26,52):
magento\app\locale\en_US\template\email\password_new.html”(24,41):
magento\app\locale\en_US\template\email\wishlist_share.html”(23,65):

2. Edit your information in

replace alt=”Magento” with alt=”your store name”

replace Magento Demo Store with your store name

replace mailto:magento@varien.com with mailto:email@yourstore.com

replace dummyemail@magentocommerce.com with email@yourstore.com

replace (800) DEMO-STORE with (0800) YOUR STORE NUMBER

replace Monday – Friday, 8am – 5pm PST with your own store opening times and timezone

3. Advanced – Automated Shell Script

Another option would be to create a shell script with all you’re information in which goes through the directories in question and replaces text as we need. Note: You will need your Store View Name and Store Name to match your domain name.

#!/bin/sh
phone=(123)456-7890

find app/locale/en_US/template/email/sales -type f -exec sed -i ’s/alt=”Magento”/alt=”{{var order.getStoreGroupName()}}”/g’ {} \;
find app/locale/en_US/template/email/sales -type f -exec sed -i ’s/Magento Demo Store/{{var order.getStoreGroupName()}} /g’ {} \;
find app/locale/en_US/template/email/sales -type f -exec sed -i ’s/mailto:magento@varien.com/sales@{{var order.getStoreGroupName()}}/g’ {} \;
find app/locale/en_US/template/email/sales -type f -exec sed -i ’s/dummyemail@magentocommerce.com/sales@{{var order.getStoreGroupName()}}/g’ {} \;

find app/locale/en_US/template/email -type f -exec sed -i ’s/alt=”Magento”/alt=”{{var customer.store.name}}”/g’ {} \;
find app/locale/en_US/template/email -type f -exec sed -i ’s/Magento Demo Store/{{var customer.store.name}} /g’ {} \;
find app/locale/en_US/template/email -type f -exec sed -i ’s/mailto:magento@varien.com/sales@{{var customer.store.name}}/g’ {} \;
find app/locale/en_US/template/email -type f -exec sed -i ’s/dummyemail@magentocommerce.com/sales@{{var customer.store.name}}/g’ {} \;

find app/locale/en_US/template/email -type f -exec sed -i “s/(800)DEMO-STORE/$phone/g” {} \;
find app/locale/en_US/template/email -type f -exec sed -i “s/(800)DEMO-NUMBER/$phone/g” {} \;
find app/locale/en_US/template/email -type f -exec sed -i “s/(800) DEMO-NUMBER/$phone/g” {} \;
find app/locale/en_US/template/email -type f -exec sed -i “s/(800) DEMO-STORE/$phone/g” {} \;
find app/locale/en_US/template/email -type f -exec sed -i ’s/Monday – Friday, 8am – 5pm PST/24×7/g’ {} \;
find app/locale/en_US/template/email -type f -exec sed -i ’s/logo_email.gif/logo.gif/g’ {} \;

MAGENTO Error:: cannot access the connect manager

2009年9月2日 没有评论

The problem was due to the directory permissions on /downloader (was 775, needed to be 755 and the /downloader/index.php (was 755 needed to be 644).

Also, the magento php.ini changes needed to be added to a custom php.ini in the main directory and /downloader.

分类: 技术 标签: ,

R400换XP 所有驱动程序安装一览表

2009年8月10日 没有评论

几点提醒:
1. 请您按照驱动排列的顺序依次安装;下载完的驱动程序是一个可执行文件,但是双击后仅是释放文件的过程并未安装,默认释放到C:\DRIVERS\WIN\***目录下,请到文件目录下继续安装。
2. 安装WinXP之前,需要在BIOS中将硬盘改为兼容模式,否则安装时会提示找不到硬盘或蓝屏,修改方法为:开机出现ThinkPad标志时,按F1进入 BIOS—> Config—>Serial ATA (SATA)把AHCI改为Compatibility,然后按F10,选择Y,保存退出。
3. 设备管理中常见的未知设备一般为ACPI电源管理器和TPM安全芯片,如果出现未知设备,请首先尝试安装其驱动。
4. 建议您不要使用GHOST安装系统,因为GHOST安装的系统驱动可能无法正常安装。
5. 如果用GHOST安装系统后“小红帽”不可用,请在设备管理器中删除“鼠标和其它指针设备”下面有感叹号的设备,然后重启系统,小红帽即可使用。

附:详细驱动安装ThinkPad R400驱动程序安装一览表 FOR WINXP CN
1、Intel主板驱动程序(设备管理器中显示为:SM总线控制器):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1221303651950&docTypeID=DOC_TYPE_DRIVER
oss803ww
默认解压路径:C:\DRIVERS\WIN\INTELINF\INFINST_AUTOL.EXE

2、ATI显卡驱动程序(设备管理器中显示为:视频控制器):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1221465455921&docTypeID=DOC_TYPE_DRIVER
7yd119ww
默认解压路径:C:\DRIVERS\WIN\DISPLAY\SETUP.EXE

3、以太网卡驱动程序(设备管理器中显示为:以太网控制器):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1221114426897&docTypeID=DOC_TYPE_DRIVER
7vra19ww
默认解压路径 C:\DRIVERS\WIN\ETHERNET\APPS\SETUP\SETUPBD\Win32\SetupBD.exe

4、Intel (11abgn, abg, bg)无线网卡驱动:(设备管理器中显示为:网络控制器)
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1221197254747&docTypeID=DOC_TYPE_DRIVER
7vwc23ww
默认释放路径C:\DRIVERS\WIN\WLANINT\Autorun.EXE

5、声卡KB888111补丁(设备管理器中显示为:其他设备:PCI-DEVICE)(必须先安装此补丁,否则无法安装声卡和MODEM驱动程序)
http://think.lenovo.com.cn/support/knowledge/detail.aspx?docID=26015&docTypeID=DOC_TYPE_KNOWLEDGE
默认释放路径:点击页面最下方附件文档下载,下载后是一个ZIP文件,先解压再安装即可。注意:
只有先安装KB888111补丁,才能安装声卡和调制解调器驱动。
如果提示系统已经包含该补丁,则不需要安装。

6、声卡(设备管理器中显示为:High Definition Audio总线上的音频设备):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1218539166732&docTypeID=DOC_TYPE_DRIVER
7wa107ww
默认释放路径C:\DRIVERS\WIN\AUDIO\SETUP.EXE

7、调制解调器(设备管理器中显示为:High Definition Audio总线上的调制解调器设备):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1218539706513&docTypeID=DOC_TYPE_DRIVER
7vma07ww
默认释放路径C:\DRIVERS\ModemOM\SETUP.EXE

8、ACPI电源管理器驱动(设备管理器中显示为:未知设备):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1197863947328&docTypeID=DOC_TYPE_DRIVER
7zku03ww
默认释放路径C:\DRIVERS\WIN\IBMPM\SETUP.EXE

9、TPM安全芯片(设备管理器中显示为:未知设备):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1218598176029&docTypeID=DOC_TYPE_DRIVER
7vza11ww
默认释放路径C:\Drivers\Win\TPM\Setup.exe(仅支持Windows XP SP2) ,如果出现安装提示失败,则用设备管理器手动将“未知设备”的驱动指向到C:\Drivers\Win\TPM\TPM\
10、SATA驱动(设备管理器里IDE ATA控制器下的PCI DEVICE)
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1197539101703&docTypeID=DOC_TYPE_DRIVER
7zim53ww
默认释放路径C:\DRIVERS\WIN\IMSM,先打开C:\DRIVERS\WIN\IMSM\PREPARE目录双击install.cmd,然后重启计算机并按F1进入BIOS在Config—>Select Serial ATA (SATA)中把选项改为AHCI,按F10保存退出,进入系统后在设备管理器中IDE ATA控制器下面的PCI DEVICE上点右键选择更新驱动程序,选择指定位置安装,并指定到C:\DRIVERS\WIN\IMSM目录搜索安装即可。
11、安装 THINKPAD SYSTEM UPDATE软件
http://think.lenovo.com.cn/support/tvt/detail.aspx?docID=TV1197274779375&docTypeID=DOC_TYPE_TVT
THINKPAD SYSTEM UPDATE.exe 装完不必运行
12、热键管理软件(HOTKEY):
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1216893127788&docTypeID=DOC_TYPE_DRIVER
7vvu54ww
默认释放路径C:\DRIVERS\WIN\HOTKEY\SETUP.EXE
13、蓝牙
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1216695410663&docTypeID=DOC_TYPE_DRIVER
7vbm02ww
默认释放路径C:\DRIVERS\MSBTooth,2.使用 Fn+F5 打开蓝牙设备。
4.如果提示发现新硬件,点击继续进行安装.
5.将驱动位置指向您驱动解压以后的位置. 6.点击确定.7.按照屏幕提示进行安装.
14、电源管理软件(Power Manager)
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1197863356578&docTypeID=DOC_TYPE_DRIVER
7vu724ww
默认释放路径C:\DRIVERS\W2K\PWRMGR\SETUP.EXE
15、 AMT(设备管理器中的PCI 简易通讯设备)
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1221797559707&docTypeID=DOC_TYPE_DRIVER
7vr109ww
2.双击您下载的驱动程序,驱动会解压缩到硬盘C:\DRIVERS\WIN\AMT.
3.点击开始,选择运行.
4.输入  C:\DRIVERS\WIN\AMT\MEI\SETUP.EXE  点击确定.
5.按照屏幕提示进行安装. 6.安装完成,重新启动计算机.
16、4in1 读卡器(设备管理器中的三个基本系统设备)
http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1197358554312&docTypeID=DOC_TYPE_DRIVER
7kss55ww
运行 C:\DRIVERS\WIN\4IN1\SETUP.EXE

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jeefchen/archive/2009/03/11/3980197.aspx

分类: 技术 标签:

关于T400 2765-22G BSOD "Stop 0x0000007B" when doing clean install of Windows XPSP3

2009年8月10日 1 条评论

从国外网站上找的方法:

OK, I managed to install XP SP3 on the machine, but the only way to do this so far is by setting the BIOS option for the SATA to "Compatibility" mode so that it sees the controller as the traditional one, for which Windows XP SP3 has it’s default driver.

I will give below a try ( even though I have tried installing it with an external floppy drive :

http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-70477&velxr-layout=printLenovo

If you do not have a diskette drive, you can install Intel Matrix Storage Manager Driver by the following alternative procedure:

  1. Start the BIOS Setup Utility menu.
  2. Select Config.
  3. Select Serial ATA (SATA).
  4. Select Compatibility.
  5. Install Windows XP and Service Pack 2.
  6. Download Intel Matrix Storage Manager Driver from the Web site and extract the driver to C:\DRIVERS\WIN\IMSM.
  7. Run Intel Matrix Storage Manager Driver. To do this, go to C:\DRIVERS\WIN\IMSM\PREPARE, and double-click install.cmd.
  8. Turn the computer off and then on again.
  9. Start the BIOS Setup Utility menu.
  10. Select Config.
  11. Select Serial ATA (SATA).
  12. Select AHCI.
  13. Start Windows XP. The Welcome to the Found New Hardware Wizard appears.
  14. Click No, not this time and click Next.
  15. Select Install from a list or specific location(Advanced), then click Next.
  16. Select Search for the best driver in these locations. Then select Include this location in the search:, specify the path, C:\DRIVERS\WIN\IMSM, and click Next. The Completing the Found New Hardware Wizard appears.
  17. Click Finish.
  18. When the System Settings Change window appears, click Yes. The computer restarts.

I’ll keep you posted on the outcome of this.

分类: 技术 标签:

不用第三方SEF扩展就能实现VirtueMart静态页面

2009年8月10日 没有评论

Joomla系统实现静态页面有两种方式:
1,系统内置SEF。
2,安装第三方SEF扩展。

可惜系统内置SEF对VirtueMart无效。有人专门做了个router.php,免费的,使得系统内置SEF也支持VirtueMart。
详见:http://extensions.joomla.org/extensions/extension-specific/virtuemart-extensions/7512/details

分类: 技术 标签: , ,

为VirtueMart网店系统增加图片局部放大镜效果(magic zoom)

2009年8月9日 1 条评论

图片局部放大镜效果(magic zoom)见http://www.magictoolbox.com/magiczoom/

magic zoom非商业用户免费,有适合VirtueMart的,也有适合Zen Cart的。

下载适合VirtueMart的:mod_virtuemart15_magiczoom

分类: 技术 标签: , ,

关于域名的工具

2009年6月20日 1 条评论

who.is查询域名注册信息,包括注册域名

instantwordsearch.com/ 是一个提供很简单服务的网站,主要提供快速的单词查询服务。你只需要输入你想要查找单词的部分字母便可以进行查询,你可以限定搜索的字幕是在单词的最前面和最后面。

suggest.name/是一个提供Web2.0域名的在线生成工具。Suggest.name提供了Web2.0网站常用的词根,你可以利用这些Web2.0网站常用的词根进行重新组合,然后找到新的域名组合。

makewords.com/ 域名生成该网站,支持

*域名长度设置 MIN & MAX

*语言设置

*关键词搜索

*首字母及尾字母

*常见后缀及前缀的添加

*快速的注册入口

分类: 技术 标签:

Python Import机制备忘-模块搜索路径(sys.path)、嵌套Import、package Import

2009年5月31日 没有评论

模块的搜索路径

模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可。下面是sys.path在Windows平台下的添加规则。

1、sys.path第一个路径往往是主模块所在的目录。在交互环境下添加一个空项,它对应当前目录。

2、如果PYTHONPATH环境变量存在,sys.path会加载此变量指定的目录。

3、我们尝试找到Python Home,如果设置了PYTHONHOME环境变量,我们认为这就是Python Home,否则,我们使用python.exe所在目录找到lib\os.py去推断Python Home。

如果我们确实找到了Python Home,则相关的子目录(Lib、plat-win、lib-tk等)将以Python Home为基础加入到sys.path,并导入(执行)lib/site.py,将site-specific目录及其下的包加入。

如果我们没有找到Python Home,则把注册表Software\Python\PythonCore\2.5\PythonPath的项加入sys.path(HKLM和 HKCU合并后加入),但相关的子目录不会自动添加的。

4、如果我们没有找到Python Home,并且没有PYTHONPATH环境变量,并且不能在注册表中找到PythonPath,那么缺省相对路径将加入(如:.\Lib;.\plat-win等)。

总结如下

当在安装好的主目录中运行Python.exe时,首先推断Python Home,如果找到了PythonHome,注册表中的PythonPath将被忽略;否则将注册表的PythonPath加入。

如果PYTHONPATH环境变量存在,sys.path肯定会加载此变量指定的目录。

如果Python.exe在另外的一个目录下(不同的目录,比如通过COM嵌入到其他程序),Python Home将不推断,此时注册表的PythonPath将被使用。

如果Python.exe不能发现他的主目录(PythonHome),并且注册表也没有PythonPath,则将加入缺省的相对目录。

标准Import

Python中所有加载到内存的模块都放在sys.modules。当import一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。如果没有加载则从sys.path目录中按照模块名称查找模块文件,模块文件可以是py、pyc、pyd,找到后将模块载入内存,并加入到sys.modules中,并将名称导入到当前的Local名字空间。

可以看出了,一个模块不会重复载入。多个不同的模块都可以用import引入同一个模块到自己的Local名字空间,其实背后的PyModuleObject对象只有一个。

说一个容易忽略的问题,import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,只能用import A。如果想只导入特定的类、函数、变量则用from A import getName即可。

嵌套Import

嵌套import,我分两种情况,一种是:本模块导入A模块(import A),而A中又有import语句,会激活另一个import动作,如import B,而B模块又可以import其他模块,一直下去。

对这种嵌套比较容易理解,注意一点就是各个模块的Local名字空间是独立的,所以上面的例子,本模块import A完了后本模块只能访问模块A,不能访问B及其他模块。虽然模块B已经加载到内存了,如果要访问还要在明确的在本模块中import B。

另外一种嵌套指,在模块A中import B,而在模块B中import A。这时会怎么样呢?这个在Python列表中由RobertChen给出了详细解释,抄录如下:

[A.py] from B import D class C:pass [B.py] from A import C class D:pass

为什么执行A的时候不能加载D呢?

如果将A.py改为:import B就可以了。

这是怎么回事呢?

RobertChen:这跟Python内部import的机制是有关的,具体到from B import D,Python内部会分成几个步骤:

  1. 在sys.modules中查找符号"B"
  2. 果符号B存在,则获得符号B对应的module对象<module B>。

    从<module B>的__dict__中获得符号"D"对应的对象,如果"D"不存在,则抛出异常

  3. 如果符号B不存在,则创建一个新的module对象<module B>,注意,这时,module对象的__dict__为空。执行B.py中的表达式,填充<module B>的__dict__ 。

    从<module B>的__dict__中获得"D"对应的对象,如果"D"不存在,则抛出异常。

所以,这个例子的执行顺序如下:

1、执行A.py中的from B import D

由于是执行的python A.py,所以在sys.modules中并没有<module B>存在,首先为B.py创建一个module对象(<module B>),注意,这时创建的这个module对象是空的,里边啥也没有,在Python内部创建了这个module对象之后,就会解析执行B.py,其目的是填充<module B>这个dict。

2、执行B.py中的from A import C

在执行B.py的过程中,会碰到这一句,首先检查sys.modules这个module缓存中是否已经存在<module A>了,由于这时缓存还没有缓存<module A>,所以类似的,Python内部会为A.py创建一个module对象(<module A>),然后,同样地,执行A.py中的语句。

3、再次执行A.py中的from B import D

这时,由于在第1步时,创建的<module B>对象已经缓存在了sys.modules中,所以直接就得到了<module B>,但是,注意,从整个过程来看,我们知道,这时<module B>还是一个空的对象,里面啥也没有,所以从这个module中获得符号"D"的操作就会抛出异常。如果这里只是import B,由于"B"这个符号在sys.modules中已经存在,所以是不会抛出异常的。

上面的解释已经由Zoom.Quiet收录在啄木鸟了,里面有图,可以参考一下。

Package(包) Import

包(Package)可以看成模块的集合,只要一个文件夹下面有个__init__.py文件,那么这个文件夹就可以看做是一个包。包下面的文件夹还可以成为包(子包)。更进一步,多个较小的包可以聚合成一个较大的包,通过包这种结构,方便了类的管理和维护,也方便了用户的使用。比如SQLAlchemy等都是以包的形式发布给用户的。

包和模块其实是很类似的东西,如果查看包的类型import SQLAlchemy type(SQLAlchemy),可以看到其实也是<type ‘module’>。import包的时候查找的路径也是sys.path。

包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的__init__.py而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的__init__.py中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。如:

PA

–__init__.py

–wave.py

–PB1

  –__init__.py

  –pb1_m.py

–PB2

  –__init__.py

  –pb2_m.py

__init__.py都为空,如果有以下程序:

  1. import sys
  2. import PA.wave  #1
  3. import PA.PB1   #2
  4. import PA.PB1.pb1_m as m1  #3
  5. import PA.PB2.pb2_m #4
  6. PA.wave.getName() #5
  7. m1.getName() #6
  8. PA.PB2.pb2_m.getName() #7

当执行#1后,sys.modules会同时存在PA、PA.wave两个模块,此时可以调用PA.wave的任何类或函数了。但不能调用PA.PB1(2)下的任何模块。当前Local中有了PA名字。

当执行#2后,只是将PA.PB1载入内存,sys.modules中会有PA、PA.wave、PA.PB1三个模块,但是PA.PB1下的任何模块都没有自动载入内存,此时如果直接执行PA.PB1.pb1_m.getName()则会出错,因为PA.PB1中并没有pb1_m。当前Local中还是只有PA名字,并没有PA.PB1名字。

当执行#3后,会将PA.PB1下的pb1_m载入内存,sys.modules中会有PA、PA.wave、PA.PB1、PA.PB1.pb1_m四个模块,此时可以执行PA.PB1.pb1_m.getName()了。由于使用了as,当前Local中除了PA名字,另外添加了m1作为PA.PB1.pb1_m的别名。

当执行#4后,会将PA.PB2、PA.PB2.pb2_m载入内存,sys.modules中会有PA、PA.wave、PA.PB1、PA.PB1.pb1_m、PA.PB2、PA.PB2.pb2_m六个模块。当前Local中还是只有PA、m1。

下面的#5,#6,#7都是可以正确运行的。

注意的是:如果PA.PB2.pb2_m想导入PA.PB1.pb1_m、PA.wave是可以直接成功的。最好是采用明确的导入路径,对于./..相对导入路径还是不推荐用。

分类: 技术 标签:

在Windows上安装Python+MySQL 的常见问题及解决方法

2009年5月28日 没有评论

验证是否已经安装了MySQLdb:

==========================================================
d:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] onwin32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
ImportError: No module named MySQLdb
==========================================================
如果有类似于上面的”No module named MySQLdb”,表明MySQLdb尚未安装或安装的不成功!

MySQL 版本:5.0.67
下载地址:http://dev.mysql.com/downloads/mysql/5.0.html#downloads
下载exe文件并安装

==========================================================

Python 版本:2.5
下载地址:http://www.python.org/download/releases/2.5.4/
下载msi文件并安装

MySQLdb版本: MySQLdb Windows binary for Python 2.5
下载地址:http://biohackers.net/wikiattach/Python2(2e)5/attachments/MySQL-python.exe-1.2.1_p2.win32-py2.5.exe
参见:http://forums.mysql.com/read.php?50,129618,140611#msg-140611

常见问题:
1.无法定位程序输入点 mysql_server_init 于动态链接库 LIBMYSQL.dll 上。
—————————————————————————————————-
D:\usr\local\Python25>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
  File “D:\usr\local\Python25\Lib\site-packages\MySQLdb\__init__.py”, line 19, in <module>
    import _mysql
ImportError: DLL load failed: 找不到指定的程序。
—————————————————————————————————-
解决方法:把mysql安装目录的bin\libmySQL.dll文件复制到python安装目录的Lib\site-packages下

==========================================================

Python 版本:2.6
下载地址:http://www.python.org/download/releases/2.6.1/
下载msi文件并安装

MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe
参见:http://sourceforge.net/forum/forum.php?thread_id=2316047&forum_id=70460

常见问题:
1.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
  File “D:\usr\local\Python26\Lib\site-packages\MySQLdb\__init__.py”, line 19, in <module>

    import _mysql
ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
解决方法:下载libmmd.dll(附件)和libguide40.dll(附件)两个dll文件并复制到python安装目录的Lib\site-packages下。
参见:http://sourceforge.net/forum/message.php?msg_id=5613887

2.ImportError: DLL load failed: 找不到指定的模块。
—————————————————————————————————-
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MySQLdb
D:\usr\local\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
  from sets import ImmutableSet
—————————————————————————————————-
解决方法:
1) file “__init__”, replace: 
 
from sets import ImmutableSet  
class DBAPISet(ImmutableSet):  
 
with  
 
class DBAPISet(frozenset) 
 
2) file “converters.py”, remove: 
 
from sets import BaseSet, Set 
 
3) file “converters.py”, change “Set” by “set” (IMPORTANT: only two places): 
 
line 48: return set([ i for i in s.split(‘,’) if i ]) 
line 128: set: Set2Str, 
参见:http://sourceforge.net/forum/message.php?msg_id=5808948

相关附件

分类: 技术 标签: