Python 3.5 How do I list classes/functions available in an import package? - python-3.5

I'm porting all my Python code from 2.7 to 3.5 and keep running into issues where my imported packages don't contain the same classes/functions as they did in 2.7. I DO NOT want to use one of the methods where you can support both 2.7 and 3x. I'm dropping 2.7 entirely.
Is there a way to search an imported package for a specific thing or to list the classes/functions in a nested display?
Right now, I'm trying to find the escape_string() function in mysql-connector-python (v8x) but I keep needing something to explore packages. The docs for the mysql-connector-python package say that it's in mysql.connector.MySQL but there's no such attribute.
Thanks...

If you believe the documentation is wrong, I would open an issue with them and also double and triple check that you have installed the correct package.
To list the classes/functions of a module you can use:
import os # or whatever
print(list(os.__dict__.keys()))

Related

Import of Ecoinvent 2.2 and Ecoinvent 3.x fail with Brightway

The import of Ecoinvent 2.2 and 3.x does not happen. I do not understand what is the issue here.
I have downloaded both 2 and 3 versions from Ecoinvent.org but both the Ecospold1 and 2 importers show me the same (or the lack of) results.
`from brightway2 import *
ei33cutoff = SingleOutputEcospold2Importer(
r"C:\Users\HS254581\Documents\test\ecoinvent33cutoff\datasets",
"ecoinvent 3.3 cutoff"
)
ei33cutoff.apply_strategies()
ei33cutoff.statistics()`
All I get is
"Extracting XML data from 13831 datasets"
WITHOUT any error message. I have kept it running for hours sometimes, ultimately I have to quit.
I can however import Forwast database, do some LCA calculations here and some CSV files from Simapro.
I read most of the questions answered here and on github, but cannot find a solution to this problem.
Send help!
P.S. I am using Python 3.7 with Spyder. Here I need to activate bw2 environment in Anaconda prompt and set Python interpreter path to default. Have installed kernels too. This is the only way it seems to work. Also updated conda and brightway packages today just in case.

mkl_blas_dgemm_alloc not found in mkl_intel_thread

I developed a a tool in python 3.5 some time ago which currently only uses differential evolution from scipy to do its task. For some reasons I had to change settings on my machine and switch to use python in a virtual environment.
My specs now:
win 10 64 bit
used pip 9.0.1
numpy 1.12.1+mkl
scipy 0.19.0
python 3.6.1
I have a different env using python 2.7 flying around somewhere else.
Now my problem....everytime the differential evolution function gets its first set of data it crashes after returning the differential_evolution step value.
The differential_evolution call can be found under ./libraries/methods/differential_evoluation.py line 76
The pop-up Error is "Entry point 'mkl_blas_dgemm_alloc wasn't found in 'mkl_intel_thread.dll'." And the printed error is "Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll." Please notice that my system language is german therfore the pop-up message was translated by me.
I don't know whether this is relevant but my directory structure is:
>some_place/location1/goal.py
>some_place/location2/env/
I didn't work with virtualenv before and in addition to this i used python 3.5. I'd appreciate any help or instructions on how to add more information to this case to help clarify my problem.
Yours sincerely
OK I'm back with more information. Maybe someone else will stumble uppon it. To be clear: I do not know the fix or reason. I just tried a bunch of stuff.
Using
python 3.5.3,numpy 1.11.1+mkl and scipy-0.18.0 or scipy-0.19.0
made the error disappear. I couldn't try numpy 1.11.1 or 1.11.2 for python 3.6 because this kind soul sadly doesn't offer those versions anymore. I found the 1.11.1 version for python 3.5 somewhere on my disk.
From my testing i can tell that it breaks once i use numpy 1.11.3 or higher. 1.11.1 works fine. Therefore I assume that some changes happened either in numpy between 1.11.1 and 1.11.3 which break it OR in how this kind soul creates/builds his wheels. So I'm going to use python 3.5 for now as i do not have numpy 1.11.1+mkl for python 3.6.
Yours sincerely

Can't locate collections module for python 3

I'm new to Python 3 and following a tutorial which uses a package called collections. While there is an import statement(import collections)in the program, and the program works without error I am confused. I can't locate the package, and it is not listed as one of the downloadable packages. Is it part of python 2/3, and if so where would I see it listed?
I guess it comes with Python 3. You can see the location of an imported module with __path__, like this:
>>> import collections
>>> collections.__path__
['/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/collections']
Here's some relevant Python documentation:
https://docs.python.org/3.5/tutorial/modules.html#packages-in-multiple-directories
https://docs.python.org/3.5/reference/import.html#path

Python Leap motion Libraries not working

I am trying to use my Leap motion in Python 3.4, but I cant even get import Leap to work. The python file I am trying to run is on my desktop, along with all the library files (Leap.py, LeapPython.pyd, Leap.dll, and Leap.lib). Whenever I try to run import Leap in my code, the program just throws this:
ImportError: DLL load failed: The specified module could not be found.
I'm not sure what DLL its talking about, I already tried putting msvcp120.dll and msvcr120.dll in the same directory.
I am using Leap Motion SDK Version V2.3.1.31549 on a 64 bit Windows 10 with the 32 bit version of Python 3.4
All help is appreciated.
Thank You!
The Leap Motion SDK only supports Python 2.7.
Some people have reported success using SWIG to regenerate the Python wrapper for Python 3 (the SWIG .i file is included in the SDK). You could also use the LeapC library to to create a Ctypes-based wrapper, which could support multiple versions of Python.

TinyTag import error python 3.3

I have been trying to import tinytag into python to be able to read mp3 tags but I keep receiving the same error. This is the code I am running
from tinytag import TinyTag
tag = TinyTag.get('/some/music.mp3)
print(tag.album)
and the error I recieve from this is
ImportError: No module named 'tinytag'
If anyone could give me any information on how to fix this would be greatly appreciated or can suggest another reader to use that is compatible with python 3.
Like you, I'm new to Python and I struggled with this but I worked it out eventually. I'm sure there is better way, but this worked (on windows, with my examples)
I installed a python module called easy_install (bundled with
setuptools). you can Google this. In the directory \Python26\Scripts you should see an exe file called easy_install if this has worked
Then I downloaded TinyTag to my pc eg
\downloads\tinytag-0.6.1.tar.gz
Then in note pad I wrote a small text file called myinstall.bat with
the contents
easy_install C:/downloads/tinytag-0.6.1.tar.gz
pause
then saved it into \Python26\Scripts and ran it (the pause keeps the
window open so you can see it worked)
Subsequently I started using some software called JetBrains to code with (it's commercial but there is a free edition) and that has an install tool built in which is even easier) I hope this helps

Resources