2010-06-24 84 views
1

我需要连接MySQLdb - 模块。导出PYTHONPATH - 语法错误

我下载MySQLdb模块并安装它。

但是,当我写(在python交互式shell):import MySQLdb - 我得到no module named MySQLdb

然后我决定在PYTHONPATH变量中包含MySQLdb目录。

我写的(在Python的交互式shell): export PYTHONPATH=${PYTHONPATH}:/where/module/lives/

而作为回应,我收到一个语法错误:invalid syntax:出口PYTHONPATH ^ = $ {PYTHONPATH} /哪里/模块/生活/

这里的语法有什么问题?

回答

10

如果你真的意味着你在Python“交互shell”中键入

>>> export PYTHONPATH... 

,语法错误是因为它不是有效的Python,它是一个命令(bash)的外壳声明:

$ export PYTHONPATH="$PYTHONPATH:/where/module/lives/" 
$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
>>> import MySQLdb 
>>> 
+0

应在庆典发言结肠是一个分号?你不想让'/ some/path'成为'/ some/path;/where/the/module/lives /'? – 2013-09-28 04:16:33

+1

分号是[Windows上的路径分隔符,冒号在Unix上执行这项工作](http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH)。这个问题使用了Unix语法,即使OP没有明确说明正在使用什么操作系统。 – msw 2013-09-28 12:34:46

+0

就在我认为自己在Linux上行得通的时候,有一些真正基本的东西我不知道! – 2013-09-29 13:03:54

5

如果你要修改的路径内Python包,你可以这样做:

import sys 
sys.path.append('/where/module/lives/') 

语法export PYTHONPATH=…被(Bourne)shell(bash等)所理解。

两种用法有自己的优势:

  • 对于那些不经常使用的模块,在“内”巨蟒的做法往往是最好的,因为你没有污染PYTHONPATH与路径所有的小模块。
  • 对于许多程序中使用的模块,shell方法通常是最好的;在这种情况下,您可以通过在shell初始化文件(.bashrc等)中更新它来永久修改PYTHONPATH。
+0

谢谢。我会知道的。 – Kalinin 2010-06-24 08:03:32

0

如果你想改变是永久性的,则追加这一行的〜/ .bashrc

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages