在 Python 中导入失败
Importing in Python failing
我正在按照 this blog post 上的说明从 Mercurial 转换为 Git
当我运行这样的脚本时:
hg-fast-export.sh -r c:\projects\demoapp
然后失败并出现以下错误:
Traceback (most recent call last):
File "./hg-fast-export.py", line 11, in <module>
from mercurial import node
ImportError: cannot import name node
我的 hg-fast-export.py 的开头看起来像这样
#!/usr/bin/env python
# Copyright (c) 2007, 2008 Rocco Rutte <pdmef@gmx.net> and others.
# License: MIT <http://www.opensource.org/licenses/mit-license.php>
import sys
# import mercurial libraries from zip:
sys.path.append(r'C:\Program Files (x86)\Mercurial\library.zip')
from mercurial import node
from hg2git import setup_repo,fixup_user,get_branch,get_changeset
from hg2git import load_cache,save_cache,get_git_sha1,set_default_branch,set_origin_name
from optparse import OptionParser
import re
import os
我检查了 library.zip
文件(位于 C:\Program Files (x86)\Mercurial\
,它包含以下文件夹结构(除了许多其他 files/folders insize library.zip
library.zip
|
---------mercurial
|
----------node.pyc
我真的很难过。我不知道该怎么办。我已经坚持了两天了。它可能是我忽略的非常简单的东西,但我不知道它是什么。这是缓存问题吗?是设置问题吗?是环境问题吗?
请帮忙,谢谢:)
您几乎可以肯定在路径中的某处有另一个 mercurial
包或模块。由于您使用 sys.path.append()
library.zip
文件搜索 last 模块。
您最好的办法是将库 zipfile 添加到 Python 模块搜索路径 start:
sys.path.insert(0, r'C:\Program Files (x86)\Mercurial\library.zip')
如果这是一个包,您是否尝试放置一个 __init__.py
文件?这将确保可以找到您的子目录中的文件。虽然您必须更改一些代码(尤其是在您的导入语句中),但这似乎应该是可行的方法。
我正在按照 this blog post 上的说明从 Mercurial 转换为 Git
当我运行这样的脚本时:
hg-fast-export.sh -r c:\projects\demoapp
然后失败并出现以下错误:
Traceback (most recent call last):
File "./hg-fast-export.py", line 11, in <module>
from mercurial import node
ImportError: cannot import name node
我的 hg-fast-export.py 的开头看起来像这样
#!/usr/bin/env python
# Copyright (c) 2007, 2008 Rocco Rutte <pdmef@gmx.net> and others.
# License: MIT <http://www.opensource.org/licenses/mit-license.php>
import sys
# import mercurial libraries from zip:
sys.path.append(r'C:\Program Files (x86)\Mercurial\library.zip')
from mercurial import node
from hg2git import setup_repo,fixup_user,get_branch,get_changeset
from hg2git import load_cache,save_cache,get_git_sha1,set_default_branch,set_origin_name
from optparse import OptionParser
import re
import os
我检查了 library.zip
文件(位于 C:\Program Files (x86)\Mercurial\
,它包含以下文件夹结构(除了许多其他 files/folders insize library.zip
library.zip
|
---------mercurial
|
----------node.pyc
我真的很难过。我不知道该怎么办。我已经坚持了两天了。它可能是我忽略的非常简单的东西,但我不知道它是什么。这是缓存问题吗?是设置问题吗?是环境问题吗?
请帮忙,谢谢:)
您几乎可以肯定在路径中的某处有另一个 mercurial
包或模块。由于您使用 sys.path.append()
library.zip
文件搜索 last 模块。
您最好的办法是将库 zipfile 添加到 Python 模块搜索路径 start:
sys.path.insert(0, r'C:\Program Files (x86)\Mercurial\library.zip')
如果这是一个包,您是否尝试放置一个 __init__.py
文件?这将确保可以找到您的子目录中的文件。虽然您必须更改一些代码(尤其是在您的导入语句中),但这似乎应该是可行的方法。