Вам, вероятно, нужно url-кодировать пароль.Вы увидите ошибку, подобную этой, если пароль содержит '/'.
Вот локальный пример (фактические значения отредактированы):
>>> opener
<urllib.FancyURLopener instance at 0xb6f0e2ac>
>>> opener.open('http://admin:somepass@example.com')
<addinfourl at 3068618924L whose fp = <socket._fileobject object at 0xb6e7596c>>
>>> opener.open('http://admin:somepass/a@example.com')
*** InvalidURL: nonnumeric port: 'somepass'
Кодирование пароля:
>>> opener.open('http://admin:somepass%2Fa@example.com')
Вы можете использовать urllib.quote('somepass/a', safe='')
для кодирования.