Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> import module 
:(
    Опции темы
mrgloom
Дата 28.5.2012, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



пытаюсь вызвать из с++ кода минимальный код на python

Код

void  call_simple_python_func()
{
    Py_Initialize();
    static const char *program = ""   
    "import sys\n"
    "import sys.path\n";
    PyRun_SimpleString(program); 
    Py_Finalize();
}



пишет что нет модуля path ("no module named path")
причем из интерпретатора все работает.

причем так работает

Код

void  call_simple_python_func()
{
    Py_Initialize();
    static const char *program = "" 
    "import sys\n"
    "from sys import path\n"
    "print sys.path\n";
    PyRun_SimpleString(program); 
    Py_Finalize();
}



не понятно в чем проблема, возможно в директориях которые просматриваем интерпретатор откуда импортировать?
они содержаться как раз в sys.path там всё вроде ок.

Это сообщение отредактировал(а) mrgloom - 28.5.2012, 13:40
PM MAIL   Вверх
mrgloom
Дата 28.5.2012, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Цитата

"import sys\n"
    "import sys.path\n";

это я ошибся.

вообщем такая же проблема как тут, но переустановка на 2.5.4 не дала результата.

http://www.linuxquestions.org/questions/pr...et-mess-699794/

Это сообщение отредактировал(а) mrgloom - 28.5.2012, 15:16
PM MAIL   Вверх
rsm
Дата 28.5.2012, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Наверное, я до невозможности огорчу, но sys.path - это список, а не модуль:

Код

import sys
type(sys.path)
<type 'list'>

А вот, к примеру, os.path это действительно субмодуль:

Код

import os
type(os.path)
<type 'module'>

Оператор import в первой форме (import sys) управляет только модулями. Если нужно импортировать в локальное пространство имён что-то конкретное, используется вторая форма оператора import (from sys import path).
PM MAIL   Вверх
mrgloom
Дата 28.5.2012, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



проблема там даже не в типе, а в socket, точнее в _socket (возможно из-за того что он как .pyd импортируется)


Код

void  call_simple_python_func()
{
    Py_Initialize();
    static const char *program = ""  
    "import socket\n";  // не работает
    "import os\n";  // работает
    PyRun_SimpleString(program); 
    Py_Finalize();
}



Это сообщение отредактировал(а) mrgloom - 28.5.2012, 16:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0411 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.