Python论坛  - 讨论区

标题:[python-chinese] python新手问题

2006年11月29日 星期三 11:30

Kula kulasama在gmail.com
星期三 十一月 29 11:30:31 HKT 2006

开发环境 eclipse3.2+pydev
我在d:/root/project 新建了一个工程. testOne
然后建立了一个源文件夹名为test
然后新建了两个文件。
testOne/test/hello.py
def test1():
    print 'hello'

testOne/test/run.py
from testOne.test.hello import test1
def test2():
    test1()
然后我运行run.py
结果出错。
Traceback (most recent call last):
  File "D:\root\project\testOne\test\run.py", line 1, in ?
    from testOne.test.hello import test1
ImportError: No module named testOne.test.hello

想问下这是什么回事?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/d5ce1132/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 12:15

limodou limodou在gmail.com
星期三 十一月 29 12:15:22 HKT 2006

On 11/29/06, Kula <kulasama在gmail.com> wrote:
> 开发环境 eclipse3.2+pydev
> 我在d:/root/project 新建了一个工程. testOne
> 然后建立了一个源文件夹名为test
> 然后新建了两个文件。
> testOne/test/hello.py
> def test1():
>     print 'hello'
>
> testOne/test/run.py
> from testOne.test.hello import test1
> def test2():
>     test1()
> 然后我运行run.py
> 结果出错。
> Traceback (most recent call last):
>   File "D:\root\project\testOne\test\run.py", line 1, in ?
>     from testOne.test.hello import test1
> ImportError: No module named testOne.test.hello
>
> 想问下这是什么回事?
>
python在导入模块时要通过sys.path来找到路径才可以。在一个自已的目录下运行。要么在命令行相应的目录下,这样,当前目录就自动加到sys.path中去了。要么设置环境变量PYTHONPATH为你要导入模块的路径。再有可以在运行时动态修改sys.path的值,将你的路径加进去。另外,每个python的模块下需要有一个__init__.py文件存在才表示是一个模块,才可以被python导入。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 12:52

jxppp liu jxppp.liu在gmail.com
星期三 十一月 29 12:52:47 HKT 2006

EclipseÀïÃæÉ趨¹¤×÷Ŀ¼¾ÍºÃÁË¡£

2006/11/29, limodou <limodou在gmail.com>:
>
> On 11/29/06, Kula <kulasama在gmail.com> wrote:
> > ¿ª·¢»·¾³ eclipse3.2+pydev
> > ÎÒÔÚd:/root/project н¨ÁËÒ»¸ö¹¤³Ì. testOne
> > È»ºó½¨Á¢ÁËÒ»¸öÔ´Îļþ¼ÐÃûΪtest
> > È»ºóн¨ÁËÁ½¸öÎļþ¡£
> > testOne/test/hello.py
> > def test1():
> >     print 'hello'
> >
> > testOne/test/run.py
> > from testOne.test.hello import test1
> > def test2():
> >     test1()
> > È»ºóÎÒÔËÐÐrun.py
> > ½á¹û³ö´í¡£
> > Traceback (most recent call last):
> >   File "D:\root\project\testOne\test\run.py", line 1, in ?
> >     from testOne.test.hello import test1
> > ImportError: No module named testOne.test.hello
> >
> > ÏëÎÊÏÂÕâÊÇʲô»ØÊ£¿
> >
> pythonÔÚµ¼ÈëÄ£¿éʱҪͨ¹ýsys.pathÀ´ÕÒµ½Â·¾¶²Å¿ÉÒÔ¡£ÔÚÒ»¸ö×ÔÒѵÄĿ¼ÏÂÔËÐС£ÒªÃ´ÔÚÃüÁîÐÐÏàÓ¦µÄĿ¼Ï£¬ÕâÑù£¬
> µ±Ç°Ä¿Â¼¾Í×Ô¶¯¼Óµ½sys.pathÖÐÈ¥ÁË¡£ÒªÃ´ÉèÖû·¾³±äÁ¿PYTHONPATHΪÄãÒªµ¼ÈëÄ£¿éµÄ·¾¶¡£ÔÙÓпÉÒÔÔÚÔËÐÐʱ¶¯Ì¬ÐÞ¸Äsys.pathµÄÖµ£¬
> ½«ÄãµÄ·¾¶¼Ó½øÈ¥¡£ÁíÍ⣬ÿ¸öpythonµÄÄ£¿éÏÂÐèÒªÓÐÒ»¸ö__init__.pyÎļþ´æÔڲűíʾÊÇÒ»¸öÄ£¿é£¬²Å¿ÉÒÔ±»pythonµ¼Èë¡£
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/2382b586/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 15:06

Kula kulasama在gmail.com
星期三 十一月 29 15:06:45 HKT 2006

我加了import sys
sys.path.append('D:/root/project/')
还是不行。貌似不是环境变量的问题。
然后我这个项目一直都放在eclipse的workspace里。也应该不存在工作目录问题

我在modules下面建立了__init__.py文件。结果还是出现异常
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/a43d5cfd/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 15:25

syli hailang_0512在163.com
星期三 十一月 29 15:25:03 HKT 2006

½« from testOne.test.hello import test1  ¸ÄΪ from hello import test1 ¾ÍOK
  ----- Original Message ----- 
  From: Kula 
  To: python-chinese在lists.python.cn 
  Sent: Wednesday, November 29, 2006 11:30 AM
  Subject: [python-chinese] pythonÐÂÊÖÎÊÌâ


  ¿ª·¢»·¾³ eclipse3.2+pydev
  ÎÒÔÚd:/root/project н¨ÁËÒ»¸ö¹¤³Ì. testOne
  È»ºó½¨Á¢ÁËÒ»¸öÔ´Îļþ¼ÐÃûΪtest
  È»ºóн¨ÁËÁ½¸öÎļþ¡£
  testOne/test/hello.py
  def test1():
      print 'hello'

  testOne/test/run.py
  from testOne.test.hello import test1 
  def test2():
      test1()
  È»ºóÎÒÔËÐÐrun.py
  ½á¹û³ö´í¡£
  Traceback (most recent call last):
    File "D:\root\project\testOne\test\run.py", line 1, in ?
      from testOne.test.hello import test1
  ImportError: No module named testOne.test.hello

  ÏëÎÊÏÂÕâÊÇʲô»ØÊ£¿



------------------------------------------------------------------------------


  _______________________________________________
  python-chinese
  Post: send python-chinese在lists.python.cn
  Subscribe: send subscribe to python-chinese-request在lists.python.cn
  Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
  Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/78d4d55d/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 15:34

Kula kulasama在gmail.com
星期三 十一月 29 15:34:46 HKT 2006

恩。谢谢。以解决。
不过我在django里一般都是用from testOne.test.hello import test1的形式来调用。
可以成功。为什么在普通工程里这样写就不行?求解答

On 11/29/06, syli <hailang_0512 at 163.com> wrote:
>
>  将 from testOne.test.hello import test1  改为 from hello import test1 就OK
>
> ----- Original Message -----
> *From:* Kula <kulasama at gmail.com>
> *To:* python-chinese at lists.python.cn
> *Sent:* Wednesday, November 29, 2006 11:30 AM
> *Subject:* [python-chinese] python新手问题
>
> 开发环境 eclipse3.2+pydev
> 我在d:/root/project 新建了一个工程. testOne
> 然后建立了一个源文件夹名为test
> 然后新建了两个文件。
> testOne/test/hello.py
> def test1():
>     print 'hello'
>
> testOne/test/run.py
> from testOne.test.hello import test1
> def test2():
>     test1()
> 然后我运行run.py
> 结果出错。
> Traceback (most recent call last):
>   File "D:\root\project\testOne\test\run.py", line 1, in ?
>     from testOne.test.hello import test1
> ImportError: No module named testOne.test.hello
>
> 想问下这是什么回事?
>
> ------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/6cc78636/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 15:38

limodou limodou在gmail.com
星期三 十一月 29 15:38:24 HKT 2006

On 11/29/06, Kula <kulasama在gmail.com> wrote:
> 恩。谢谢。以解决。
> 不过我在django里一般都是用from testOne.test.hello import test1的形式来调用。
> 可以成功。为什么在普通工程里这样写就不行?求解答
>
因为在django中,你并不是在一个编辑器中运行的,等于还是在命令行下运行的。它会把当前目录加到sys.path中去,所以可以找到。而在编辑器中,你的当前目录可能是编辑器自身的目录,并不是你的代码所在的目录,自然sys.path中可以就没有你的路径,所以找不到。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 15:44

Kula kulasama在gmail.com
星期三 十一月 29 15:44:08 HKT 2006

谢

On 11/29/06, limodou <limodou at gmail.com> wrote:
>
> On 11/29/06, Kula <kulasama at gmail.com> wrote:
> > 恩。谢谢。以解决。
> > 不过我在django里一般都是用from testOne.test.hello import test1的形式来调用。
> > 可以成功。为什么在普通工程里这样写就不行?求解答
> >
> 因为在django中,你并不是在一个编辑器中运行的,等于还是在命令行下运行的。它会把当前目录加到sys.path中去,
> 所以可以找到。而在编辑器中,你的当前目录可能是编辑器自身的目录,并不是你的代码所在的目录,自然sys.path中可以就没有你的路径,所以找不到。
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061129/e9550e97/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月29日 星期三 17:06

Luo Ben benluo在gmail.com
星期三 十一月 29 17:06:58 HKT 2006

清晰。谢谢!

On 11/29/06, limodou <limodou在gmail.com> wrote:
> On 11/29/06, Kula <kulasama在gmail.com> wrote:
> > 恩。谢谢。以解决。
> > 不过我在django里一般都是用from testOne.test.hello import test1的形式来调用。
> > 可以成功。为什么在普通工程里这样写就不行?求解答
> >
> 因为在django中,你并不是在一个编辑器中运行的,等于还是在命令行下运行的。它会把当前目录加到sys.path中去,所以可以找到。而在编辑器中,你的当前目录可能是编辑器自身的目录,并不是你的代码所在的目录,自然sys.path中可以就没有你的路径,所以找不到。
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号