关于__import__的问题

43 views
Skip to first unread message

Hugo Chan

unread,
Oct 24, 2013, 12:17:59 PM10/24/13
to sns...@googlegroups.com
大家好!这几天开始入门snsapi时遇到了些问题,运行snscli.py时代码抛出异常,ImportError: Import by filename is not supported.查看源代码后,是snsapi\snsapi\plugin\__init__.py和snsapi\snsapi\plugin_trial\__init__.py这两个文件里的__import__函数出了问题,于是我把ss = __import__(__name__ + '.' + i[:-3].split('/')[-1], fromlist=["*"])改成了ss = __import__(__name__, fromlist=["*"]),该异常确实“消除”了,命令行模式正常启动,但后续snsbase,utils等一系列模块都出现import问题。怀疑这个import问题是我改动了以上代码的缘故,作者原意应该是用这句代码“搜寻”到特定模块,方便之后import吧,不知道是不是这样。可是为什么我一开始会在__import__抛出异常呢?请各位前辈指教!先谢过啦!

Huiwen Lin

unread,
Oct 24, 2013, 8:29:58 PM10/24/13
to sns...@googlegroups.com
有没有更详细的Log,我Clone了最新的master版本,没有出现你说的情况。


在 2013年10月25日星期五UTC+8上午12时17分59秒,Hugo Chan写道:

hupili.snsapi

unread,
Oct 24, 2013, 9:25:47 PM10/24/13
to sns...@googlegroups.com, Qijiang Fan, Hugo Chan
On 25/10/13 12:17 AM, Hugo Chan wrote:
> ��Һã��⼸�쿪ʼ����snsapiʱ������Щ���⣬����snscli.pyʱ�����׳���
> ����ImportError: Import by filename is not supported.�鿴Դ�������
> snsapi\snsapi\plugin\__init__.py��snsapi\snsapi \plugin_trial
> \__init__.py�������ļ����__import__����������⣬�����Ұ�ss =
> __import__(__name__ + '.' + i[:-3].split('/')[-1], fromlist=["*"])�ij�
> ��ss = __import__(__name__, fromlist=["*"])�����쳣ȷʵ������ˣ�����
> ��ģʽ��������������snsbase��utils��һϵ��ģ�鶼����import���⡣��
> �����import�������ҸĶ������ϴ����Ե�ʣ�����ԭ��Ӧ�����������롰��
> Ѱ�����ض�ģ�飬����֮��import�ɣ���֪���Dz��� �������Ϊʲô��һ��ʼ
> ����__import__�׳��쳣�أ����λǰ��ָ��!��л������
> --
> You received this message because you are subscribed to the Google
> Groups "snsapi" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to snsapi+un...@googlegroups.com.
> To post to this group, send email to sns...@googlegroups.com.
> Visit this group at http://groups.google.com/group/snsapi.
> For more options, visit https://groups.google.com/groups/opt_out.

����__init__������߼�������˵��Ϊ�˷������ĵ��룬���˿����IJ��������
ӦĿ¼�¼���ʹ�á�

�ܷ����ʹ�û���������snsapi�汾����װ��ʽ��git��pip�������Լ�����ϸlog��

��һ����fqjд�ģ�һ���°�

代码家

unread,
Oct 24, 2013, 9:28:45 PM10/24/13
to sns...@googlegroups.com, hupili.snsapi
Pili,在论坛里好像乱码了,不过我在Airmail邮箱客户端看是没有问题的,检查一下邮箱客户端配置。

On 2013年10月25日 at 上午9:25:52, hupili.snsapi (hupili...@gmail.com) wrote:

On 25/10/13 12:17 AM, Hugo Chan wrote:
> 大家好!这几天开始入门snsapi时遇到了些问题,运行snscli.py时代码抛出异
> 常,ImportError: Import by filename is not supported.查看源代码后,是
> snsapi\snsapi\plugin\__init__.py和snsapi\snsapi \plugin_trial
> \__init__.py这两个文件里的__import__函数出了问题,于是我把ss =
> __import__(__name__ + '.' + i[:-3].split('/')[-1], fromlist=["*"])改成
> 了ss = __import__(__name__, fromlist=["*"]),该异常确实“消除”了,命令
> 行模式正常启动,但后续snsbase,utils等一系列模块都出现import问题。怀
> 疑这个import问题是我改动了以上代码的缘故,作者原意应该是用这句代码“搜
> 寻”到特定模块,方便之后import吧,不知道是不是 这样。可是为什么我一开始
> 会在__import__抛出异常呢?请各位前辈指教!先谢过啦!
> --
> You received this message because you are subscribed to the Google
> Groups "snsapi" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to snsapi+un...@googlegroups.com.
> To post to this group, send email to sns...@googlegroups.com.
> Visit this group at http://groups.google.com/group/snsapi.
> For more options, visit https://groups.google.com/groups/opt_out.

两个__init__里面的逻辑如你所说,为了方便插件的导入,他人开发的插件放在相
应目录下即可使用。

能否贴出使用环境,比如snsapi版本,安装方式(git,pip?),以及更详细log。

这一块是fqj写的,一起看下吧

--
You received this message because you are subscribed to a topic in the Google Groups "snsapi" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/snsapi/AmhE50uLBpw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to snsapi+un...@googlegroups.com.

Pili Hu

unread,
Oct 24, 2013, 9:45:22 PM10/24/13
to sns...@googlegroups.com, Qijiang Fan
两个__init__里面的逻辑如你所说,为了方便插件的导入,他人开发的插件放在相
应目录下即可使用。

能否贴出使用环境,比如snsapi版本,安装方式(git,pip?),以及更详细log。

这一块是fqj写的,一起看下吧


2013/10/25 Hugo Chan <hugoch...@gmail.com>
大家好!这几天开始入门snsapi时遇到了些问题,运行snscli.py时代码抛出异常,ImportError: Import by filename is not supported.查看源代码后,是snsapi\snsapi\plugin\__init__.py和snsapi\snsapi\plugin_trial\__init__.py这两个文件里的__import__函数出了问题,于是我把ss = __import__(__name__ + '.' + i[:-3].split('/')[-1], fromlist=["*"])改成了ss = __import__(__name__, fromlist=["*"]),该异常确实“消除”了,命令行模式正常启动,但后续snsbase,utils等一系列模块都出现import问题。怀疑这个import问题是我改动了以上代码的缘故,作者原意应该是用这句代码“搜寻”到特定模块,方便之后import吧,不知道是不是这样。可是为什么我一开始会在__import__抛出异常呢?请各位前辈指教!先谢过啦!

--

Qijiang Fan

unread,
Oct 24, 2013, 9:47:11 PM10/24/13
to Pili Hu, sns...@googlegroups.com

以及再貼一下python版本(包括操作系統)

Message has been deleted

Hugo Chan

unread,
Oct 25, 2013, 12:00:47 PM10/25/13
to sns...@googlegroups.com


好的。我用的是中文win7操作系统,python版本号是2.7.3,是用git方式安装的master最新分支,也就是v0.7.0。异常如上图。
在 2013年10月25日星期五UTC+8上午12时17分59秒,Hugo Chan写道:

Pili Hu

unread,
Oct 27, 2013, 1:24:16 PM10/27/13
to Hugo Chan, sns...@googlegroups.com
信息比较少,难以定位。我只有win7的英文版,cygwin下跑的python2.7.5正常。

如果是初试功能的话,可以试下这个CDE的包,一行安装,


可以用sagemath的免费VM,是正常的




具体的import问题比较诡异,源码中没有 import snsbase 一行,是还有改过其他地方吗?



2013/10/25 Hugo Chan <hugoch...@gmail.com>

好的。我用的是中文win7操作系统,python版本号是2.7.3,是用git方式安装的master最新分支,也就是v0.7.0。异常如上图。

在 2013年10月25日星期五UTC+8上午9时47分11秒,Qijiang Fan写道:

Pili Hu

unread,
Oct 27, 2013, 1:26:39 PM10/27/13
to Hugo Chan, sns...@googlegroups.com
btw,sagemath上默认是2.7.3,可以直接一行安装CDE的包来跑。


你能否把工作目录push上github,这样我好看下diff


2013/10/28 Pili Hu <hupili...@gmail.com>

Hugo Chan

unread,
Oct 28, 2013, 11:16:12 AM10/28/13
to sns...@googlegroups.com
嗯。那个import snsbase的截图我误传了,是改动过后抛的异常,Import by filename is not supported是我得到的异常。我的项目是从你那fork过来的,见https://github.com/hugochan/snsapi

在 2013年10月28日星期一UTC+8上午1时24分16秒,hupili.snsapi写道:

Pili Hu

unread,
Oct 31, 2013, 11:46:48 PM10/31/13
to sns...@googlegroups.com, Qijiang Fan
你github上是没有改过的,你的具体运行环境也不清楚,比较难给进一步建议。

@fqj,是hardcode反斜杠的问题?

 i[:-3].split('/')[-1]







2013/10/28 Hugo Chan <hugoch...@gmail.com>

Qijiang Fan

unread,
Oct 31, 2013, 11:51:13 PM10/31/13
to Pili Hu, sns...@googlegroups.com

感覺像是斜杠 但我沒Windows

你換成 那個啥 os.path.sep 是這個吧?試試看?

Hugo Chan

unread,
Nov 1, 2013, 1:07:24 PM11/1/13
to sns...@googlegroups.com
问题解决了!真是windows下路径名要用反斜杠的问题。多谢!

在 2013年10月25日星期五UTC+8上午12时17分59秒,Hugo Chan写道:
Reply all
Reply to author
Forward
0 new messages