bitly-api-python icon indicating copy to clipboard operation
bitly-api-python copied to clipboard

"ImportError: cannot import name 'Connection'

Open julianl28 opened this issue 7 years ago • 19 comments

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.

julianl28 avatar Oct 12 '16 07:10 julianl28

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

jawwolfe avatar Nov 14 '16 18:11 jawwolfe

from bitly_api import bitly_api python 3.5 windows +1

mithun-dhali-cookifi avatar Dec 01 '16 08:12 mithun-dhali-cookifi

Same for me. Python 3.5.2 Windows 10.

ghost avatar Dec 08 '16 23:12 ghost

Approved. Windows 10 x64, PyCharm 2016.3 Python 3.5.2

Edgar-I avatar Dec 10 '16 23:12 Edgar-I

@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

Edgar-I avatar Dec 11 '16 00:12 Edgar-I

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.

browniebroke avatar Dec 20 '16 11:12 browniebroke

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?

szabgab avatar Dec 27 '16 12:12 szabgab

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']

mithun-dhali-cookifi avatar Dec 27 '16 12:12 mithun-dhali-cookifi

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

Edgar-I avatar Dec 28 '16 19:12 Edgar-I

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

szabgab avatar Dec 29 '16 05:12 szabgab

@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

VISWESWARAN1998 avatar Aug 24 '17 15:08 VISWESWARAN1998

@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.

mithun-dhali-cookifi avatar Aug 24 '17 16:08 mithun-dhali-cookifi

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.

jimmy927 avatar May 13 '19 17:05 jimmy927

@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?

geotheory avatar May 21 '19 15:05 geotheory

@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.

jimmy927 avatar May 21 '19 17:05 jimmy927

Awesome that worked - cheers :)

geotheory avatar May 21 '19 18:05 geotheory

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

BRAINIFII avatar Sep 05 '19 19:09 BRAINIFII

@jimmy927

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

vjcalel avatar Feb 19 '20 06:02 vjcalel

@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.

jimmy927 avatar Feb 19 '20 13:02 jimmy927