Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 25, 2011 08:34:46

thugnificent
От:
Зарегистрирован: 2011-12-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

я установил пакет(python egg), в папке \site-packages он проявился, проверил установку через yolk -l вроде все нормально(пишет clas - 2.0.0 - active). и собственно вопрос: как из установленного пакета импортировать функцию func() (не из папки с модулем а из любого места), а то уже все from и import перепробовал?
вот содержимое module.py (файла для установки):
class ree(object):
def __init__(self):
self.__q__ = self.func()
def func(self):
print u“Я версия 2.0.0!”
return
заранее всем спасибо большое!)
да, и содержимое setup.py:
from setuptools import setup, find_packages
setup(
name = “clas”,
version = “2.0.0”,
description = u“я версия 2.0.0”,
license = “BSD”,
author = u“new”,
author_email = “new@gmail.com”,
packages = find_packages(),
)



Офлайн

#2 Дек. 25, 2011 09:46:29

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

thugnificent
а то уже все from и import перепробовал?
Так напишите какие варианты пробовали в какой файл это было записано и какое сообщение об ошибке.



Офлайн

#3 Дек. 25, 2011 10:08:44

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2797
Репутация: +  185  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

У вас func() это не функция, а метод класса. Надо так:

def func():
print u"Я версия 2.0.0!"

class ree(object):
def __init__(self):
self.__q__ = self.func()



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Дек. 25, 2011 10:08:46

thugnificent
От:
Зарегистрирован: 2011-12-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

пробую в shell
>>> import module
>>> r = module.ree()

Traceback (most recent call last):
File “<pyshell#1>”, line 1, in <module>
r = module.ree()
AttributeError: ‘module’ object has no attribute ‘ree’
>>>

или

>>> from module import ree

Traceback (most recent call last):
File “<pyshell#2>”, line 1, in <module>
from module import ree
ImportError: cannot import name ree
>>>



Офлайн

#5 Дек. 25, 2011 10:22:52

thugnificent
От:
Зарегистрирован: 2011-12-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

Rodegast
попробовал так, выдает:

>>> import module
>>> from module import func

Traceback (most recent call last):
File “<pyshell#21>”, line 1, in <module>
from module import func
ImportError: cannot import name func
>>>



Офлайн

#6 Дек. 25, 2011 10:27:47

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

1 вы зря помоему файл назвали module - это меня сильно путает.
2 проверьте переменную окружения pythonpath Если в путях модуля нет он и не загрузится.



Отредактировано (Дек. 25, 2011 10:31:42)

Офлайн

#7 Дек. 25, 2011 10:30:52

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

а если так:
import module
dir(module)
?

Офлайн

#8 Дек. 25, 2011 10:33:34

thugnificent
От:
Зарегистрирован: 2011-12-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

файл module.py есть
>>> import module
>>> dir(module)


или

>>> import module
>>> print module
<module ‘module’ from ‘C:\Python27\lib\site-packages\clas-2.0.0-py2.7.egg\module\__init__.pyc’>
>>>



Офлайн

#9 Дек. 25, 2011 10:35:44

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

thugnificent
нет у вашего модуля ни функции ни класса ree.

print module.__file__
print module.__path__
?

Отредактировано (Дек. 25, 2011 10:36:08)

Офлайн

#10 Дек. 25, 2011 10:38:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

импорт функции из установленного пакета

Во сделал

from module import ree
youReefunc=ree.func
b=ree()
youReefunc(b)
Избегать импорта ree не имеет смысла - без создания экземпляра все равно не получится вызвать функцию.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version