2012-04-12 4 views
2

Ich arbeite an einem "Chat-like" Server mit Twisted in Python. Aber ich habe Probleme. Auf dem Hauptadministrator-Konto meines Mac funktioniert Twisted gut. Aber wenn ich auf ein separaten Admin-Konto gehen, bekomme ich geworfen ...Twisted funktioniert nicht für alle Benutzer?

Traceback (most recent call last): 
    File "/Users/Alec/Desktop/server.py", line 1, in <module> 
    from twisted.internet.protocol import Protocol, Factory 
ImportError: No module named twisted.internet.protocol 

Es funktioniert gut auf dem anderen Konto, aber dieses neue Admin-Konto nicht funktioniert. Ich arbeite hart daran, mein Projekt in Gang zu bringen, aber das bringt mich zum Stillstand.

Danke!

+1

Haben Sie überprüft, ob 'sys.path' für beide Benutzer gleich ist? – icecrime

+0

@icecrime Nein, wie machst du das? – Alec

+0

'>>> importieren sys'' >>> "\ n" .join (sys.path) ' – sberry

Antwort

0

Sie können überprüfen, ob sys.path (der Modul-Suchpfad) für beide Benutzer identisch ist.

>>> import sys 
>>> sys.path 

kann eine benutzerspezifische PYTHONPATH Umgebungsvariable sein, die für eine der beiden Benutzer das Verhalten ändert, obwohl ich nicht sicher bin, könnte es tatsächlich Pause der Import.

+0

Wow, sie sind beide unterschiedlich. Der eine, der funktioniert, zeigt das richtige Verzeichnis, während der andere Anfang zeigt/opt/local/library – Alec

+0

Das könnte den Importfehler sehr gut erklären. Siehe ['sys.path' Dokumentation] (http://docs.python.org/library/sys.html#sys.path) – icecrime

+0

Auf der negativen Seite ist mein Python-Skript auf meinem Desktop und auf der guten Seite ist in ein Ordner auf dem Desktop. – Alec

1

Ich kann nur erraten, was mit Ihrem Setup nicht stimmt, da Sie nicht viele Informationen zur Verfügung gestellt haben. Die Ursache muss jedoch etwas mit der Art und Weise zu tun haben, wie Sie python aufrufen, da der Standard-Python unter OS X Twisted installiert hat (wie Sie vielleicht bemerkt haben).

  • Hat Ihr administrativer Benutzer eine selbst kompilierte Python?
  • Ist Ihr administrativer Benutzer virtualenv oder ein anderes Tool zur Verwaltung der Umgebung, das site-packages entfernen würde?
  • Hat Ihr Administrator Python von python.org installiert? (Dies ist nicht vollständig kompatibel mit dem eingebauten System Python und verschiedene Pakete zur Verfügung steht.)

Wenn type -p python in einer Shell nicht /usr/bin/python druckt, dann eine davon ist wahrscheinlich der Fall, aber es Festsetzung (Mit anderen Worten, das Unerledigen, was auch immer getan wurde) hängt davon ab, welche dieser Optionen Ihr Standard-Python verändert hat.