安装后,CentOs上的Python 2.6问题

时间:2012-01-17 00:05:01

标签: python compilation install

我最近一直在教自己python和str.endswith一个元组作为第一个参数的例子,2.4不支持。我决定尝试在我的机器上安装更新版本的Python,这样我就更新了。这台机器是CentOs5。

作为我在机器上的用户(不是root用户),我从这里取出了包:http://www.python.org/ftp/python/2.6.7/,未压缩它,确实./configure --prefix = / home / myusername / python / compiler / Python-2.6。 7安装,然后运行make,make test(一切正常)然后最终使altinstall做好措施(我知道不应该做altinstall,因为我指定了一个前缀,但真的不想打破常规python上这台机器)。当它第一次不起作用的时候我也尝试了make altinstall作为root,但它没有任何区别。

当我尝试针对二进制文件运行脚本时,我得到了一堆像这样的乱码:

./compiler/Python-2.6.7/Lib/test/test_re.pyc :   onXtd}|iti|iddddgdS(Nsu"     [\u002E\u3002\uFF0E\uFF61]"sa.b.cR$RHRX(R0RÑRÚR        RRY(R                                                                                                                                             R7((s@/home/yspendiff/python/compiler/Python-2.6.7/Lib/test/test_re.pyttest_bug_931848as
Cstidd}|i|iid|it|itidd}|i|i     id|i|i  ddS(Ns\ssa bii(ii(ii(
StopIterationRºRR(R                                          RRÓR       tnextRR4t
Rº((s@/home/yspendiff/python/compiler/Python-      2.6.7/Lib/test/test_re.pyttest_bug_581080js
 cCsatidd}|i|iid|i|iid|it|idS(Ns.*tasdfii(ii(ii(RRÓR     RÝRR4RÞ(R

也许更有针对性的很多这样的行:

./compiler/Python-2.6.7/Lib/test/test_unicode.py :           self.assert_(u'asdf' not in '')
./compiler/Python-2.6.7/Lib/test/test_unicode.py :           self.assert_('asdf' not in u'')
./compiler/Python-2.6.7/Lib/test/test_unicode.py :           self.assert_(u'asdf' not in u'')
./compiler/Python-2.6.7/Lib/test/test_re.py :           iter = re.finditer(r".*", "asdf")
./compiler/Python-2.6.7/Lib/test/string_tests.py :           self.checkequal(True,  'asdf', '__contains__', 'asdf')
./compiler/Python-2.6.7-installed/lib/python2.6/test/test_unittest.py :               loader.loadTestsFromNames(['sdasfasfasdf'])
./compiler/Python-2.6.7-installed/lib/python2.6/test/test_unittest.py :               self.assertEqual(str(e), "No module named sdasfasfasdf")

这只是数百个中的几个随机行。我没有搞乱任何默认选项,我有一个有趣的版本或指定了一些有趣的编译选项。我怎么把它关掉所以我可以安静地编码!

如果有人有兴趣,代码如下。我只用./Findword.py asdf:

来调用它
#!/home/myusername/python/compiler/Python-2.6.7-installed/bin/python2.6

### FindWord.py

import os                                 # for curdir()            #(A)
import os.path                            # for join(), isfile()    #(B)
import sys                                # for argv[], exit()      #(C)


if len( sys.argv ) != 2:                                            #(D)
    print "need a word or a single-quoted phrase to search for"     #(E)
    sys.exit(1)                                                     #(F)

def searchInFile( pattern, dirname, filenames ):                    #(G)
    for name in filenames:                                          #(H)
        name = os.path.join( dirname, name )                        #(I)
        if os.path.isfile( name ) and not name.endswith(('.pdf','.pl')):   #(J)
            FH = open( name, 'r' )                                  #(K)
            for eachline in FH:                                     #(L)
                if ( eachline.find( pattern ) != -1 ):              #(M)
                    print name, ':  ', eachline                     #(N)

os.path.walk( os.curdir, searchInFile, sys.argv[1] )                #(O)

1 个答案:

答案 0 :(得分:2)

正是你要求Python做的事情正是如此。你告诉它从你当前的目录中找到“asdf”这个词,它在二进制文件中找到它。