I'm trying to get code completion from a DLL in pydev. The DLL is definitely in my path (so there is no 'Unresolved import' warning), and if I open a console (CTRL+ALT+ENTER) and import it there, I get code completion when I press '.'. In the main IDE however there is no code completion, and what is more calls to methods on the module are underlined in red. I did try adding the module name to the forced builtins, but it seemed to have no effect and I wasn't 100% sure what I was doing, so I took it back out.
Apologies if I ask about something which has already been solved somewhere, I have looked around these forums and Googled, and the only advice I can find is 'make sure the dlls are in your PYTHONPATH' and 'upgrade PyDev', both of which I've done.
Thanks in advance for your help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Exception Stack Trace:
java.lang.RuntimeException: The shell is still not connected, so, it is an invalid state to try to write to it.
at org.python.pydev.editor.codecompletion.shell.AbstractShell.write(AbstractShell.java:749)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:902)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.internalChangePythonPath(AbstractShell.java:894)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:850)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getBuiltinModule(SystemModulesManager.java:303)
at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getBuiltinModule(SystemModulesManager.java:1)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModuleAndRelatedModulesManager(ProjectModulesManager.java:271)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModule(ProjectModulesManager.java:251)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:397)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinMod(AbstractASTManager.java:938)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinComps(AbstractASTManager.java:922)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinCompletions(AbstractASTManager.java:904)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.<init>(AbstractScopeAnalyzerVisitor.java:142)
at com.python.pydev.analysis.visitors.OccurrencesVisitor.<init>(OccurrencesVisitor.java:66)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:44)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:38)
at com.python.pydev.analysis.builder.AnalysisBuilderRunnable.doAnalysis(AnalysisBuilderRunnable.java:235)
at com.python.pydev.analysis.builder.AbstractAnalysisBuilderRunnable.run(AbstractAnalysisBuilderRunnable.java:145)
at org.python.pydev.core.concurrency.RunnableAsJobsPoolThread$1.run(RunnableAsJobsPoolThread.java:97)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Exception Stack Trace:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:663)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:732)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getCompletions(AbstractShell.java:962)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:904)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:854)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:71)
at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:242)
at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:580)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getRelativeModule(ProjectModulesManager.java:244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:410)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findModuleFromPath(AbstractASTManager.java:1396)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1177)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findTokensOnImportedMods(AbstractASTManager.java:1066)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.internalGenerateGetCompletionsForModule(AbstractASTManager.java:637)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForModule(AbstractASTManager.java:499)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForModule(AbstractASTManager.java:470)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForToken(AbstractASTManager.java:360)
at org.python.pydev.editor.codecompletion.PyCodeCompletion.doTokenCompletion(PyCodeCompletion.java:294)
at org.python.pydev.editor.codecompletion.PyCodeCompletion.getCodeCompletionProposals(PyCodeCompletion.java:124)
at org.python.pydev.editor.codecompletion.PythonCompletionProcessor.getPythonProposals(PythonCompletionProcessor.java:228)
at org.python.pydev.editor.codecompletion.PythonCompletionProcessor.computeCompletionProposals(PythonCompletionProcessor.java:152)
at org.python.pydev.editor.simpleassist.SimpleAssistProcessor.computeCompletionProposals(SimpleAssistProcessor.java:198)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1832)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:556)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:553)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:488)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:376)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Exception Stack Trace:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:663)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:732)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getCompletions(AbstractShell.java:962)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:904)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:854)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:71)
at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:242)
at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:580)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getRelativeModule(ProjectModulesManager.java:244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:410)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findModuleFromPath(AbstractASTManager.java:1396)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1177)
at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:152)
at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:133)
at com.python.pydev.analysis.visitors.Scope.addImportTokens(Scope.java:168)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.visitImport(AbstractScopeAnalyzerVisitor.java:445)
at org.python.pydev.parser.jython.ast.Import.accept(Import.java:59)
at org.python.pydev.parser.jython.ast.Module.traverse(Module.java:66)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.traverse(AbstractScopeAnalyzerVisitor.java:179)
at com.python.pydev.analysis.visitors.OccurrencesVisitor.traverse(OccurrencesVisitor.java:227)
at org.python.pydev.parser.jython.ast.VisitorBase.visitModule(VisitorBase.java:8)
at org.python.pydev.parser.jython.ast.Module.accept(Module.java:59)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:50)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:38)
at com.python.pydev.analysis.builder.AnalysisBuilderRunnable.doAnalysis(AnalysisBuilderRunnable.java:235)
at com.python.pydev.analysis.builder.AbstractAnalysisBuilderRunnable.run(AbstractAnalysisBuilderRunnable.java:145)
at org.python.pydev.core.concurrency.RunnableAsJobsPoolThread$1.run(RunnableAsJobsPoolThread.java:97)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
I am fairly sure I do not, though this is on my office machine so there's the usual rubbish loaded on there. If something were blocking would it not also block completion in the console or does that work differently?
I went through my running processes and killed pretty much everything running and tried again, but same problem.
Is there any way to confirm if something's blocking the communication?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
am having a similar issue - code completion in the console is ok, but only once the module imports… code-completion in the editor doesn't work at all.
sample:
in Editor:
from Library.<-- no suggestions
from Library.Button import Button <-unresolved import, underlined in red
in eclipse console:
from Library.<-- no suggestions
from Library.Button import Button <-OK
Button.<- code completion ok.
that's the Resolver One API btw.
logs from code-completion logging:
AbstractShell: connecting…
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: attempts: 0
AbstractShell: maxAttempts: 20
AbstractShell: finishedForGood: false
AbstractShell: connecting attept…1
AbstractShell: serverSocket.accept()!
AbstractShell: socketToRead.setSoTimeout(5000)
AbstractShell: connected!
AbstractShell: Code completion shell error:
AbstractShell: ERROR:
AbstractShell: Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pycompletionserver.py", line 310, in run
defFile, comps = importsTipper.GenerateTip(data, log)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 78, in Find
mod = _imp(name, log)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 57, in _imp
return _old_imp(initial_name, log)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 34, in _imp
raise ImportError(s)
ImportError: Unable to import module: Library - sys.path:
Log:Unable to import module: Library - sys.path:
Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 18, in _imp
return __import__(name)
ImportError: No module named Library
AbstractShell:
AbstractShell: -1
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Code completion shell error:
AbstractShell: ERROR:
AbstractShell: Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pycompletionserver.py", line 322, in run
(f, line, col), foundAs = importsTipper.Search(data)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 93, in Find
mod = getattr(mod, comp)
AttributeError: 'module' object has no attribute 'Button'
Log:
AbstractShell:
AbstractShell: -1
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Code completion shell error:
AbstractShell: ERROR:
AbstractShell: Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pycompletionserver.py", line 322, in run
(f, line, col), foundAs = importsTipper.Search(data)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 93, in Find
mod = getattr(mod, comp)
AttributeError: 'module' object has no attribute 'Button'
etc etc…
thanks in advance for any help!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It seems that the problem is that it cannot import 'Library'. This may happen if your pythonpath is not correct… or sometimes you have some environment variable that's not correct (pydev will inherit the env. variables from the launched eclipse, so, the shell that started eclipse must be correct).
Another case may be that you just compiled the library, in which case you may have to do ctrl+2+kill to have it clear the caches and start a new shell for doing that analysis.
Cheers,
Fabio
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think the problem is that the DLL isn't compiled C#, it's compiled python.
It's definitely on the pythonpath - I've even tried moving the dll into the same folder as my .py file. And the library imports ok, and can be introspected at the console. Other c# dlls do seem to work in the editor, so it seems to be a specific problem with this dll (and a few others)
but i did just find out from the developers that Library.dll isn't C#, it's ironpython-compiled python code. Could that be the problem? Is introspecting this sort of dll meant to be possible in pydev?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
another theory on why it's not working: the dll has a number of dependencies, on other dlls and on parts of the windows api (system.data, system.drawing…)… so before i can import it, i have to:
clr.AddReference('Library')
clr.AddReference('Utils') #another dll
clr.AddReference('System.Data')
clr.AddReference('System.Drawing')
from Library.Workbook import Workbook
could it be that it's these dependencies that are tripping over the autocomplete-interpreter? Is there any way of forcing them to be loaded? I've tried putting them in forced builtins, but no cigar…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Try adding that in org.python.pydev_xxx/PySrc/importsTipper.py, in line 39, right after the check:
if sys.platform == 'cli':
Then do a ctrl+2+kill and request a new completion to know if it works… If it doesn't, is there any chance that I could have access to that dll (and dependencies) so that I can do some tests here?
Cheers,
Fabio
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm trying to get code completion from a DLL in pydev. The DLL is definitely in my path (so there is no 'Unresolved import' warning), and if I open a console (CTRL+ALT+ENTER) and import it there, I get code completion when I press '.'. In the main IDE however there is no code completion, and what is more calls to methods on the module are underlined in red. I did try adding the module name to the forced builtins, but it seemed to have no effect and I wasn't 100% sure what I was doing, so I took it back out.
Apologies if I ask about something which has already been solved somewhere, I have looked around these forums and Googled, and the only advice I can find is 'make sure the dlls are in your PYTHONPATH' and 'upgrade PyDev', both of which I've done.
Thanks in advance for your help.
Just to be sure, the directory that contains the dll is in the pythonpath (and not the dll itself), right?
Now, to help determine the cause, can you go through the following steps:
1. Use ctrl+2+kill (this is the clear your caches)
2 Go to window > preferences > pydev > logging and check 'enable logging for code completion?'
3. Create an empty file and write the code to get completions in the dll
E.g.:
import mydll
mydll.| <- request completion here
And paste the results…
Cheers,
Fabio
p.s.: This has to be with the latest version (which had some code added to help diagnose this kind of stuff)
Three messages created in error log.
Pydev version: 1.5.7.2010050621
Exception Stack Trace:
java.lang.RuntimeException: The shell is still not connected, so, it is an invalid state to try to write to it.
at org.python.pydev.editor.codecompletion.shell.AbstractShell.write(AbstractShell.java:749)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:902)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.internalChangePythonPath(AbstractShell.java:894)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:850)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getBuiltinModule(SystemModulesManager.java:303)
at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getBuiltinModule(SystemModulesManager.java:1)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModuleAndRelatedModulesManager(ProjectModulesManager.java:271)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getModule(ProjectModulesManager.java:251)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:397)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinMod(AbstractASTManager.java:938)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinComps(AbstractASTManager.java:922)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getBuiltinCompletions(AbstractASTManager.java:904)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.<init>(AbstractScopeAnalyzerVisitor.java:142)
at com.python.pydev.analysis.visitors.OccurrencesVisitor.<init>(OccurrencesVisitor.java:66)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:44)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:38)
at com.python.pydev.analysis.builder.AnalysisBuilderRunnable.doAnalysis(AnalysisBuilderRunnable.java:235)
at com.python.pydev.analysis.builder.AbstractAnalysisBuilderRunnable.run(AbstractAnalysisBuilderRunnable.java:145)
at org.python.pydev.core.concurrency.RunnableAsJobsPoolThread$1.run(RunnableAsJobsPoolThread.java:97)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Session Data:
eclipse.buildId=M20090917-0800
java.version=1.5.0_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product
Exception Stack Trace:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:663)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:732)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getCompletions(AbstractShell.java:962)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:904)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:854)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:71)
at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:242)
at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:580)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getRelativeModule(ProjectModulesManager.java:244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:410)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findModuleFromPath(AbstractASTManager.java:1396)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1177)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findTokensOnImportedMods(AbstractASTManager.java:1066)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.internalGenerateGetCompletionsForModule(AbstractASTManager.java:637)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForModule(AbstractASTManager.java:499)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForModule(AbstractASTManager.java:470)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getCompletionsForToken(AbstractASTManager.java:360)
at org.python.pydev.editor.codecompletion.PyCodeCompletion.doTokenCompletion(PyCodeCompletion.java:294)
at org.python.pydev.editor.codecompletion.PyCodeCompletion.getCodeCompletionProposals(PyCodeCompletion.java:124)
at org.python.pydev.editor.codecompletion.PythonCompletionProcessor.getPythonProposals(PythonCompletionProcessor.java:228)
at org.python.pydev.editor.codecompletion.PythonCompletionProcessor.computeCompletionProposals(PythonCompletionProcessor.java:152)
at org.python.pydev.editor.simpleassist.SimpleAssistProcessor.computeCompletionProposals(SimpleAssistProcessor.java:198)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1832)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:556)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:553)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:488)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:376)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Session Data:
eclipse.buildId=M20090917-0800
java.version=1.5.0_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product
Exception Stack Trace:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:663)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.read(AbstractShell.java:732)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getCompletions(AbstractShell.java:962)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getTheCompletions(AbstractShell.java:904)
at org.python.pydev.editor.codecompletion.shell.AbstractShell.getImportCompletions(AbstractShell.java:854)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.setTokens(CompiledModule.java:127)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:83)
at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:71)
at org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:242)
at org.python.pydev.editor.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:580)
at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getRelativeModule(ProjectModulesManager.java:244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.getModule(AbstractASTManager.java:410)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findModuleFromPath(AbstractASTManager.java:1396)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1244)
at org.python.pydev.editor.codecompletion.revisited.AbstractASTManager.findOnImportedMods(AbstractASTManager.java:1177)
at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:152)
at com.python.pydev.analysis.visitors.ImportChecker.visitImportToken(ImportChecker.java:133)
at com.python.pydev.analysis.visitors.Scope.addImportTokens(Scope.java:168)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.visitImport(AbstractScopeAnalyzerVisitor.java:445)
at org.python.pydev.parser.jython.ast.Import.accept(Import.java:59)
at org.python.pydev.parser.jython.ast.Module.traverse(Module.java:66)
at com.python.pydev.analysis.scopeanalysis.AbstractScopeAnalyzerVisitor.traverse(AbstractScopeAnalyzerVisitor.java:179)
at com.python.pydev.analysis.visitors.OccurrencesVisitor.traverse(OccurrencesVisitor.java:227)
at org.python.pydev.parser.jython.ast.VisitorBase.visitModule(VisitorBase.java:8)
at org.python.pydev.parser.jython.ast.Module.accept(Module.java:59)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:50)
at com.python.pydev.analysis.OccurrencesAnalyzer.analyzeDocument(OccurrencesAnalyzer.java:38)
at com.python.pydev.analysis.builder.AnalysisBuilderRunnable.doAnalysis(AnalysisBuilderRunnable.java:235)
at com.python.pydev.analysis.builder.AbstractAnalysisBuilderRunnable.run(AbstractAnalysisBuilderRunnable.java:145)
at org.python.pydev.core.concurrency.RunnableAsJobsPoolThread$1.run(RunnableAsJobsPoolThread.java:97)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Session Data:
eclipse.buildId=M20090917-0800
java.version=1.5.0_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product
Seems there's a problem communicating with the shell… Do you have some firewall enabled that may be preventing the communication?
Cheers,
Fabio
I am fairly sure I do not, though this is on my office machine so there's the usual rubbish loaded on there. If something were blocking would it not also block completion in the console or does that work differently?
I went through my running processes and killed pretty much everything running and tried again, but same problem.
Is there any way to confirm if something's blocking the communication?
am having a similar issue - code completion in the console is ok, but only once the module imports… code-completion in the editor doesn't work at all.
sample:
in Editor:
from Library.<-- no suggestions
from Library.Button import Button <-unresolved import, underlined in red
in eclipse console:
from Library.<-- no suggestions
from Library.Button import Button <-OK
Button.<- code completion ok.
that's the Resolver One API btw.
logs from code-completion logging:
Log:Unable to import module: Library - sys.path:
Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 18, in _imp
return __import__(name)
ImportError: No module named Library
AbstractShell:
AbstractShell: -1
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Code completion shell error:
AbstractShell: ERROR:
AbstractShell: Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pycompletionserver.py", line 322, in run
(f, line, col), foundAs = importsTipper.Search(data)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 93, in Find
mod = getattr(mod, comp)
AttributeError: 'module' object has no attribute 'Button'
Log:
AbstractShell:
AbstractShell: -1
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Synchronizing on shells…
AbstractShell: Getting shell related to:IronPython id:1 interpreter: C:\Program Files (x86)\IronPython 2.6\ipy.exe
AbstractShell: Code completion shell error:
AbstractShell: ERROR:
AbstractShell: Traceback (most recent call last):
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\pycompletionserver.py", line 322, in run
(f, line, col), foundAs = importsTipper.Search(data)
File "C:\Users\Harry\Desktop\eclipse\plugins\org.python.pydev_1.5.7.2010050621\PySrc\importsTipper.py", line 93, in Find
mod = getattr(mod, comp)
AttributeError: 'module' object has no attribute 'Button'
etc etc…
thanks in advance for any help!
It seems that the problem is that it cannot import 'Library'. This may happen if your pythonpath is not correct… or sometimes you have some environment variable that's not correct (pydev will inherit the env. variables from the launched eclipse, so, the shell that started eclipse must be correct).
Another case may be that you just compiled the library, in which case you may have to do ctrl+2+kill to have it clear the caches and start a new shell for doing that analysis.
Cheers,
Fabio
Hey Fabio,
I think the problem is that the DLL isn't compiled C#, it's compiled python.
It's definitely on the pythonpath - I've even tried moving the dll into the same folder as my .py file. And the library imports ok, and can be introspected at the console. Other c# dlls do seem to work in the editor, so it seems to be a specific problem with this dll (and a few others)
but i did just find out from the developers that Library.dll isn't C#, it's ironpython-compiled python code. Could that be the problem? Is introspecting this sort of dll meant to be possible in pydev?
another theory on why it's not working: the dll has a number of dependencies, on other dlls and on parts of the windows api (system.data, system.drawing…)… so before i can import it, i have to:
could it be that it's these dependencies that are tripping over the autocomplete-interpreter? Is there any way of forcing them to be loaded? I've tried putting them in forced builtins, but no cigar…
Try adding that in org.python.pydev_xxx/PySrc/importsTipper.py, in line 39, right after the check:
if sys.platform == 'cli':
Then do a ctrl+2+kill and request a new completion to know if it works… If it doesn't, is there any chance that I could have access to that dll (and dependencies) so that I can do some tests here?
Cheers,
Fabio
crashes eclipse ;-)
my importTipper now reads:
no problems re accessing the DLL. they're from the Resolver One spreadsheet app, available from http://www.resolversystems.com/download/
email / im me on harry dott percival att gmail dott com if you need. i really appreciate your efforts!