Импорт из другого проекта в pydev - PullRequest
9 голосов
/ 31 октября 2011

Я уже некоторое время осматриваюсь, но просто не могу найти ответ. Подобные вопросы относятся к некоторым сложным случаям со сторонними библиотеками и всем, но моя ситуация, кажется, проста в учебнике. Тем не менее я не могу понять, как это работает.

Я использую Eclipse 3.5.2, Pydev 2.2.0, работающий на машине с Ubuntu 11.04.

Мой случай кажется простым: я хочу написать пакет как свой собственный проект, а затем я хочу написать приложение, использующее этот пакет, в другом проекте.

Как мне настроить pydev, чтобы у меня были эти два проекта "core" (пакет) и "app" (который использует пакет core), а изнутри "app" сделать:

import core

  • Я добавил ядро ​​в Project References приложения, но оно не работает что-нибудь.
  • Я добавил / core / в папки с исходным кодом (мне пришлось принудительно установить это, потому что отображается в списке), это не сработало (поэтому я удалил его).
  • Я добавил / full / path / to / core во внешние библиотеки, он все еще не работает.

Под «не работает» я имею в виду, что я всегда получаю «неразрешенный импорт: ядро».

Идеи

Ответы [ 3 ]

10 голосов
/ 01 ноября 2011

Если у вас есть 2 проекта с правильно установленной PYTHONPATH (через исходные папки), он должен работать, просто добавляя ссылку на проект.

Возможно, пример может помочь ...

Например:

project1
project1/src <-- this should be set as the source folder
project1/src/core
project1/src/core/__init__.py

project2
project2/src <-- this should be set as the source folder
project2/src/app
project2/src/app/__init__.py

, а затем отредактируйте свойства project2> ссылки на проект и выберите «project1», чтобы иметь возможность доступа к project1 из проекта 2.

1 голос
/ 13 ноября 2014

У меня некоторое время была такая же проблема.
Теперь я понял, как можно импортировать класс или функцию из модуля и пакета в другие проекты.
Я оказался глуп от этого, потому что это всегда легко.

Заключение!
Все, что вам нужно сделать, это просто проверить имя проекта в «Ссылках проекта», «Файл» / «Свойства» / «Ссылки проекта».
С точки зрения использования импорта, ссылка на другой проект такая же, как вы помещаете все файлы или модули в каталог текущего проекта. Я использую liclipse_1.0.0_win32.x86_64 в Windows 7.

Давайте я покажу примеры.
Есть два проекта A и B, а проект A имеет модуль a1.py и пакет 'M'.
Вы работаете над проектом B и проверяете ссылочный проект A в следующем дереве проекта.

|-- A
|   |-- M
|   |   |-- __init__.py
|   |   `-- m1.py
|   `-- a1.py
`-- B
    `-- b1.py

# a1.py
def say_a():
    print "I'm A"

# m1.py
def say_m():
    print "I'm M"

Теперь вы можете получить доступ к проекту А., как показано ниже.

#b1.py
import a1
from M import m1   
a1.say_a()
m1.say_m()

На самом деле оператор импорта python немного странен для меня, что вы можете найти другой способ сделать то же самое.
Кроме того, если вы хотите запустить b1.py из командной строки Linux, посмотрите это.

~ / tmp / pydemo / B $ PYTHONPATH = .. / Питон b1.py

0 голосов
/ 16 апреля 2014

Я не получил эту работу, добавив ссылку на проект. Тем не менее, я начал работать, сначала удалив, а затем добавив в проект характер проекта pydev, а затем установив ссылку на проект.

...