V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kojp
V2EX  ›  问与答

关于环境变量和shell,pythom相互调用的疑惑

  •  
  •   kojp · 2012-05-14 23:27:22 +08:00 · 2454 次点击
    这是一个创建于 4567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    #!/usr/bin/python
    #test.py 这是一个测试脚本
    import chardet
    print "test"
    print chardet.detect("test")


    #!/bin/bash
    #testfail.sh 这个会提示导入模块错误
    python test.py

    #!/bin/bash
    #testok.sh 这个是OK的。
    /usr/local/python2.7/bin/python2.7 test.py


    纠结了好几天。想在V2EX上面问一下什么情况的。发帖的时候,才想出testok.sh

    虽然testok.sh解决了问题。可还是不明白。为什么会这样呢?
    6 条回复    1970-01-01 08:00:00 +08:00
    INT21H
        1
    INT21H  
       2012-05-14 23:29:56 +08:00
    看到了chardet。。。lz原来你还在搞那个编码问题。。
    Livid
        2
    Livid  
    MOD
       2012-05-14 23:30:52 +08:00
    export PATH=$PATH:/usr/local/bin
    kojp
        3
    kojp  
    OP
       2012-05-14 23:39:07 +08:00
    @INT21H 编码搞定了。还是在各位V2EXER的帮助和启发下。各种感谢。

    今天遇到的其实跟编码无关。应该是跟环境变量 有关的。


    @Livid
    have a try~~~thks.
    kojp
        4
    kojp  
    OP
       2012-05-14 23:57:08 +08:00
    @Livid

    按你说的不行,
    export PATH=$PATH:/usr/local/python2.7/bin #因为我的在这里面是tar安装的。
    然后呢,挺好玩的。这里可能是有一个优先级之类的。
    export PATH=/usr/local/python2.7/bin:$PATH
    就OKAY了。。哈哈。有点意思。

    谢谢!^_^
    reorx
        5
    reorx  
       2012-05-14 23:58:50 +08:00
    可能你的/usr/bin/python指向的是/usr/bin/python2.6(也许是其他版本),而2.6又没有装chardet的缘故。个人觉得python文件的第一行写 `/usr/bin/env python` 好一些。
    Livid
        6
    Livid  
    MOD
       2012-05-15 00:19:59 +08:00
    @kojp :P 是的,刚才用 iPhone 回的,我没看清楚。

    话说我要尽快把 PB3 的 via Source 功能加回来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5962 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:32 · PVG 10:32 · LAX 18:32 · JFK 21:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.