2013-11-24 30 views
2

我正在将博客从Wordpress迁移到Octopress。作为此过程的一部分,我使用名为exitwp的工具将所有Wordpress内容转换为Markdown文件。Exitwp无法导入PyYAML模块

我已按照exitwp安装说明安装了所有要求。 Python使用homebrew安装; Python模块安装了pip。我在使用OS X 10.9的Mac上。

$ which python 

/usr/bin/python 

$ pip install --upgrade -r pip_requirements.txt 

Requirement already up-to-date: html5lib==1.0b1 in /usr/local/lib/python2.7/site-packages (from -r pip_requirements.txt (line 1)) 
Requirement already up-to-date: beautifulsoup4==4.2.0 in /usr/local/lib/python2.7/site-packages (from -r pip_requirements.txt (line 2)) 
Requirement already up-to-date: PyYAML==3.10 in /usr/local/lib/python2.7/site-packages (from -r pip_requirements.txt (line 3)) 
Requirement already up-to-date: html2text==3.200.3 in /usr/local/lib/python2.7/site-packages (from -r pip_requirements.txt (line 4)) 
Requirement already up-to-date: six in /usr/local/lib/python2.7/site-packages (from html5lib==1.0b1->-r pip_requirements.txt (line 1)) 

$ pip show PyYAML 

Name: PyYAML 
Version: 3.10 
Location: /usr/local/lib/python2.7/site-packages 
Requires: 

$ python -c "import sys; print sys.path" 

['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages'] 

当我运行exitwp,我得到以下错误:

$ cd ~/code/exitwp/ 
$ python exitwp.py 

Traceback (most recent call last): 
    File "exitwp.py", line 10, in <module> 
    import yaml 
ImportError: No module named yaml 

我的想法是,这可能是与Python的未来预安装了OS X,而且我已经安装通过homebrew更新的Python版本。我对Python和pip并不是很有经验,所以我遇到了一些问题。

如果有人能指出我正确的方向,将不胜感激。

+0

你能运行'蟒蛇-c“进口SYS;打印sys.path的”从'你的命令行并发布输出? – jazzpi

+0

谢谢,@jazzpi。我编辑了我的问题并添加了这些信息。 – Leif

+0

@Leif太棒了!你救了我一天 –

回答

2

您的python可执行文件在/System/Library/Frameworks...中搜索模块。 pip安装在模块/usr/local/lib/python2-7/site-packages虽然

一个快速和肮脏的解决办法是不要简单地添加/usr/local/lib/python2.7/site-packages到您的PYTHONPATH:

PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH python exitwp.py 
+0

真棒,谢谢!像魅力一样工作。可以将路径添加到我的PATHONPATH有任何不良副作用?什么是解决问题的“缓慢而干净的方式”? :) – Leif

+1

@Leif:不,它不应该,因为你只为你正在运行的命令('python exitwp.py')设置'PYTHONPATH'。如果你希望它是永久的,你必须导出它。这可能会产生副作用(能够从其他地方从'/ usr/local/...'中导入模块),但这可能是正面的,对吧? – jazzpi

+0

太好了,再次感谢您的帮助和解释。我可能会导出它,以便它是永久的,但我需要先阅读它;我需要明白我在做什么:) – Leif