Skip to content
This repository has been archived by the owner on Apr 9, 2021. It is now read-only.

"ImportError: cannot import name 'Connection' #39

Open
julianl28 opened this issue Oct 12, 2016 · 19 comments
Open

"ImportError: cannot import name 'Connection' #39

julianl28 opened this issue Oct 12, 2016 · 19 comments

Comments

@julianl28
Copy link

Sorry if this is really obvious, I'm new to Python. When I try to import the bitly_api library into my application I get the above error. To narrow down the problem (in case it was one of the other libraries I was using) I created a new program with just 'import bitly_api' in it, nothing else. I still get the error below.

`"C:\Program Files\Python35\python.exe" C:/Users/julianl/Documents/Python/test_bitly_api.py
Traceback (most recent call last):
File "C:/Users/julianl/Documents/Python/test_bitly_api.py", line 12, in
import bitly_api
File "C:\Program Files\Python35\lib\site-packages\bitly_api__init__.py", line 1, in
from bitly_api import Connection, BitlyError, Error
ImportError: cannot import name 'Connection'

Process finished with exit code 1`

I'm on Windows 10, Python 3.5.1, using the PyCharm Community Edition 2016.2.3 IDE, and bitly_api library v0.3.

@jawwolfe
Copy link

Hi. I'm having the same problem with using python 3.5.2 with bitly_api.

@mithun-dhali-cookifi
Copy link

mithun-dhali-cookifi commented Dec 1, 2016

from bitly_api import bitly_api
python 3.5 windows
+1

@ghost
Copy link

ghost commented Dec 8, 2016

Same for me. Python 3.5.2 Windows 10.

@Edgar-I
Copy link

Edgar-I commented Dec 10, 2016

Approved. Windows 10 x64, PyCharm 2016.3 Python 3.5.2

@Edgar-I
Copy link

Edgar-I commented Dec 11, 2016

@scott-plutovr @mithun-dhali-cookifi @jawwolfe @julianl28
Roughly fixed. No guaranteed backward compability. Use on your own risk.
Tested on Python 3.5.2
Problem with imports and unicode
https://goo.gl/AYsH7H

@browniebroke
Copy link

I had the same problem and given the lack of support for this library, I've switched to https://github.com/ellisonleao/pyshorteners

  • Uses requests, so easier to mock API calls for testing
  • Works with Python 3.5
  • Looks like it's still maintained (last activity on September)

It arguably adds some code I don't need for the others shorteners, but if one day I want to switch to another service, there is normalised API.

@szabgab
Copy link

szabgab commented Dec 27, 2016

Same problem on OSX using Python 3.5.2
@TheGuyverjoke is there a pull-request with the changes that created the zip file linked to?

@mithun-dhali-cookifi
Copy link

I ended up using my own small snippet. Since it was not that complex i avoided using any lib.


def shorten(uri):
    query_params = {
        'access_token': settings.BITLY_OAUTH2_TOKEN,
        'longUrl': uri
    }

    endpoint = 'https://api-ssl.bitly.com/v3/shorten'
    response = requests.get(endpoint, params=query_params, verify=False)

    data = response.json()


    if not data['status_code'] == 200:
        logger.error("Unexpected status_code: {} in bitly response. {}".format(data['status_code'], response.text))

    return data['data']['url']

@Edgar-I
Copy link

Edgar-I commented Dec 28, 2016

@szabgab You can use code from master branch. Since PyPI has non >Python3.5 compatible code with tag v0.3

@szabgab
Copy link

szabgab commented Dec 29, 2016

@TheGuyverjoke thanks. For now I am good with the snippet provided by @mithun-dhali-cookifi

@VISWESWARAN1998
Copy link

@mithun-dhali-cookifi that one has a requests dependency and the url is not encoded so longer urls which contains &, ? will not be shortened.

Here is an improved solution: https://gist.github.com/VISWESWARAN1998/24af6f2aa01f43f84c6850718593deb3

@mithun-dhali-cookifi
Copy link

mithun-dhali-cookifi commented Aug 24, 2017

@VISWESWARAN1998

http://docs.python-requests.org/en/master/user/quickstart/#passing-parameters-in-urls
params are automatically escaped/encoded by requests.
The solution is functionally correct and we have been using it on our production site.

The implementation does require requests. But since requests is very popular and we were already using it, it made sense for us.

There may be some new library available. I have not checked recently.

@jimmy927
Copy link

This repo seems abandoned by its original creator.
I have cloned it and merged in at least some pull requests here: https://github.com/jimmy927/bitly-api-python

At the writing point in time i got it working.

@geotheory
Copy link

@jimmy927 I've cloned on macOS and installed (pip install --upgrade -e /pathto/bitly-api-python/), but get No module named 'bitly_api' error when importing. Any idea what the issue is?

@jimmy927
Copy link

jimmy927 commented May 21, 2019

@jimmy927 I've cloned on macOS and installed (pip install --upgrade -e /pathto/bitly-api-python/), but get No module named 'bitly_api' error when importing. Any idea what the issue is?

My clone is not available on PyPI ( i think ...)
So run this instead: pip install git+git://github.com/jimmy927/bitly-api-python

I changed the documentation accordingly.

@geotheory
Copy link

Awesome that worked - cheers :)

@BRAINIFII
Copy link

Had the same issue but the API provided by @jimmy927 worked perfectly you saved my life.

@vjcalel
Copy link

vjcalel commented Feb 19, 2020

@jimmy927

Perhaps you could release it on pypi. How to include this on requirement.txt for a herku python app ?

@jimmy927
Copy link

@jimmy927

How to include this on requirement.txt for a herku python app ?

Does it work if you put "git+git://github.com/jimmy927/bitly-api-python" in your requirements.txt ?
I works for me on Google App Engine.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests