小编ryp*_*pel的帖子

32位模块如何在64位Python上运行?

我在64位Win7机器上使用带有32位Python2.7版本的inspyred库编写了一个遗传算法程序.在生成总体时,程序在使用高达1959044K的内存时停止运行.

我在这个网站上已经阅读了很多问题,据我所知,这是因为操作系统对32位程序的上限为2GB.所以我试图切换到64位Python并安装我正在使用的64位版本的模块,不幸的是,除了一个模块之外,所有模块都无法在64位平台上运行.

我还在另一个问题中按照建议安装了pywin32但是也没有帮助.这个模块不是标准的Python库,我在下面粘贴了它.我得到的错误信息是:

import AoN
ImportError: DLL load failed: %1 is not a valid Win32 application.
Run Code Online (Sandbox Code Playgroud)

我的理解是64位Python无法识别32位模块.我也在这里阅读:http://effbot.org/zone/python-compile.htm关于编译源代码,但是我已经编译了64位的源代码,但这也没有帮助,因为它继续给出错误.

最后,我在解释器路径中粘贴了模块的目录路径,但这也没有用.

有没有办法让这个模块在64位Python上运行?请任何人解释编译源代码的过程,如果这可以帮助我?

python 32bit-64bit python-2.7

4
推荐指数
1
解决办法
3345
查看次数

&符号的Python子流程问题

我目前遇到一个python脚本的主要问题.该脚本通过处理程序运行任意命令,以将错误的错误报告转换为正确的错误报告.

我遇到的问题是让脚本在Windows上正常工作,其命令在其路径中包含&符号.我试图引用命令,用^来逃避&符号,但都不起作用.我现在已经没想法了.有什么建议?

从目前的答复中澄清:

  1. 我正在使用子进程模块
  2. 我将命令行+参数作为列表传递
  3. 问题在于命令本身的路径,而不是任何参数
  4. 我试过引用命令.它会导致[Error 123] The filename, directory name, or volume label syntax is incorrect错误
  5. 我没有使用shell参数(所以shell=false)
  6. 如果它很重要,我正在抓取一个管道到stderr处理它,但忽略了stdout和stdin
  7. 它目前只在Windows上使用,并且在我迄今为止测试过的所有其他情况下都能按预期工作.
  8. 失败的命令是:

p = subprocess.Popen(prog,stderr = subprocess.PIPE,bufsize = -1)

当列表'prog'的第一个元素包含任何&符号时.引用第一个字符串不起作用.

python windows subprocess command-line-arguments

3
推荐指数
1
解决办法
4547
查看次数

Python包导入错误

我正在尝试打包我的模块,但我似乎无法让它工作.

我的目录树类似于以下内容:

snappy/
    __init__.py
    main/
        __init__.py
        main.py
        config.py
        ...
    ...      
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码是

from snappy.main.config import *
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ImportError: No module named snappy.main.config
Run Code Online (Sandbox Code Playgroud)

有什么想法会出错吗?这是在Ubuntu 8.10上使用Python 2.5.

在此先感谢您的帮助.

python package python-import

3
推荐指数
2
解决办法
1266
查看次数

用子进程包装cmd.exe

我尝试使用以下程序在Windows下包装cmd.exe但它不起作用,它似乎等待某些东西并且不显示任何内容.知道这里有什么问题吗?

import subprocess

process = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=None)  
process.stdin.write("dir\r\n")  
output = process.stdout.readlines()  
print output
Run Code Online (Sandbox Code Playgroud)

python windows subprocess

3
推荐指数
2
解决办法
2万
查看次数

使用管道从Ubuntu Laptop删除所有出现的Thumbs.db文件

我有一台安装了Ubuntu 10.04的笔记本电脑.我将部分文件从一台计算机迁移到此计算机.但有一些文件,如Thumbs.db文件,我想要摆脱每一次出现.

我试过用

locate Thumbs.db | rm
Run Code Online (Sandbox Code Playgroud)

但是dis没有成功(显然它不应该).然后我尝试使用以下,但很可能没有一个成功:

locate thumbs.db > rm
locate thumbs.db < rm
Run Code Online (Sandbox Code Playgroud)

正如大家在这里,可能已经指出我很难使用管道,并希望以此为例清除我的概念.我已经阅读了基础知识,但仍无法在原语中应用它.

ubuntu pipeline pipe

3
推荐指数
2
解决办法
1941
查看次数

解析HTML:Python中的lxml错误

我正在编写一个简单的脚本来从这里获取大灰色表.

我的代码如下:

import urllib2
from lxml import etree

html = urllib2.urlopen("http://www.afi.com/100years/movies10.aspx").read()

root = etree.XML(html)
Run Code Online (Sandbox Code Playgroud)

但是我在最后一个声明中收到错误.

Traceback (most recent call last):
  File "D:\Workspace\afi100\afi100.py", line 13, in <module>
    root = etree.XML(html)
  File "lxml.etree.pyx", line 2720, in lxml.etree.XML (src/lxml/lxml.etree.c:52577)
  File "parser.pxi", line 1556, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79602)
  File "parser.pxi", line 1435, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78449)
  File "parser.pxi", line 943, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:75099)
  File "parser.pxi", line 547, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71467)
  File "parser.pxi", line 628, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72340)
  File "parser.pxi", line 568, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71683) …
Run Code Online (Sandbox Code Playgroud)

python lxml html-parsing

3
推荐指数
1
解决办法
3687
查看次数

导入模块时遇到问题

os.chdir()用来更改我的recommendations.py文件所在的当前目录.然后我打字Import recommendations,我得到错误:

ImportError: No module named recommendations.
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

python python-import pythonpath

3
推荐指数
1
解决办法
68
查看次数

只返回xpath中的元素文本(python/lxml)

我有这样的XML结构:

mytree = """
<path>
    <to>
        <nodes>
            <info>1</info>
            <info>2</info>
            <info>3</info>
        </nodes>
    </to>
</path>
"""
Run Code Online (Sandbox Code Playgroud)

我目前正在使用python lxml中的xpath来获取节点:

>>> from lxml import etree   
>>> info = etree.XML(mytree)   
>>> print info.xpath("/path/to/nodes/info")
[<Element info at 0x15af620>, <Element info at 0x15af940>, <Element info at 0x15af850>]  
>>> for x in info.xpath("/path/to/nodes/info"):
            print x.text

1
2
3
Run Code Online (Sandbox Code Playgroud)

这是伟大的,但有没有抢到一个更清洁的方式只是内部的文本作为一个列表,而不是在事后写for循环?
就像是:

print info.xpath("/path/to/nodes/info/text")
Run Code Online (Sandbox Code Playgroud)

(但这不起作用)

python xml xpath lxml xml-parsing

3
推荐指数
1
解决办法
1万
查看次数

Python 2.6.1:检查是否存在导入

我已经为Python 2.6.1的一些同事的Mac OSX编写了一个实用程序脚本.由于它们没有安装所有必需的模块,我有一个try-except import子句:

try:
    import argparse
except ImportError:
    print "argparse module missing: Please run 'sudo easy_install argparse'"
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

我很确定有更优雅的方法来处理这个问题.有任何想法吗?

python macos python-module python-import

3
推荐指数
1
解决办法
673
查看次数

混合argparse中的位置和可选参数

argparse当我混合位置参数,可选参数和时,我遇到了一个问题argparse.REMAINDER

parser = argparse.ArgumentParser()
parser.add_argument('verbose', action="store")
parser.add_argument('--config', '-c', nargs="?", dest="config_file")
parser.add_argument('--dry-run', action="store_true", dest="dryrun")
parser.add_argument('args', nargs=argparse.REMAINDER, action="store")
Run Code Online (Sandbox Code Playgroud)

样品运行:

python test.py verose="5" --config config.xml graph --dry-run
Run Code Online (Sandbox Code Playgroud)

预期产量:

verbose = "5"
config_file = config.xml
dryrun = True
args = ['graph']
Run Code Online (Sandbox Code Playgroud)

实际产量:

verbose = "5"
config_file = config.xml
dryrun = False
args = ['graph', '--dry-run']
Run Code Online (Sandbox Code Playgroud)

我的要求是我有verbose,-c,--config--dry-run作为命令行选项,在命令行提供的任何其他选项应存放在列表中args,不论在命令行的参数出现的顺序的.请帮助我做错了.另外还有其他更好的python命令行解析器吗?

python argparse

3
推荐指数
1
解决办法
2188
查看次数