简体   繁体   中英

Pydev tags import as “unresolved import” but code using this import works fine.

I'm fairly new to python and especially it's import mechanism. I'm not entirely sure i'm using the terminology correctly so i should apologize for that up front.

firstly, this seems to be a problem i'm having with a 3rd party import so i can't really change the structure of their release.

In the release, all of the packages are in site-packages/[ROOTFOL]/[PACKAGE] the [ROOTFOL] does not have a __init__.py file, only the package folders have this file. this folder is placed into site-packages and the site-packages is present in my PYTHONPATH

in the examples they provide, they use it like this:

import ROOTFOL.PACKAGE.WhateverObject as obj

I'm trying to avoid adding every single package to the PYTHONPATH as there are a bunch of them. Everything seems to work fine, however it really inhibits my ability to work with the auto-complete functionality and that is the frustrating part.

Something else i find strange, is that when the packages are installed, there is a EGG-INFO folder placed along side the package. In this there are several .txt files and one of which is namespace_packages.txt which has only the ROOTFOL. Is there some way i should be setting this to PyDev?

So, what you're seeing here is their distribution model. Usually a module will have one root import that everything stems from, but that's not necessarily the case. They're providing a package with (what I assume) is many modules that don't interact with each other; or they can all stand alone.

instead of importing each package individually, you could use the 'from' keyword:

from ROOTFOL.PACKAGE import *

which will grab everything inside that sub-module. You could e-mail the developer and ask why they deployed it this way...or you could add your own __init__.py to the root folder and,

from ROOTFOL import * 

which will walk the tree. Good luck!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM