Sinbad lo
Sinbad lo

Reputation: 95

Python27(win): import daemon, but there is an error: No module named pwd

1) pip install daemon.

enter image description here

2) Open windows cmd and input: python, then input: import daemon the terminal show

>>> import daemon
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\daemon\__init__.py", line 42, in <module>
    from .daemon import DaemonContext
  File "C:\Python27\lib\site-packages\daemon\daemon.py", line 25, in <module>
    import pwd
ImportError: No module named pwd
>>>

3) pip install pwd

what's the problem?????

Upvotes: 9

Views: 29784

Answers (4)

Bhavya Bansal
Bhavya Bansal

Reputation: 11

Internally they are using pwd for fetching owner's name which you can avoid by simply commenting import pwd in pebblo.pycheck the image below

Upvotes: 0

shasank
shasank

Reputation: 1

Same thing happened to me in getpass module, it worked the first time in getpass.getuser() but then it stopped working saying

module pwd not found

I fixed it by repairing the python installation from the installer itself.

Upvotes: 0

Erik Aronesty
Erik Aronesty

Reputation: 12945

python-daemon (newer version) and daemon both require the pwd package, which is not available on Windows.

Your code should detect that this is not available and disable daemon mode on Windows (which isn't really a thing).

try:
    import daemon
except ImportError:
    daemon = None

Then later, you can check if daemon is None.

Upvotes: 2

Michael Robinson
Michael Robinson

Reputation: 956

  1. The pwd module is a UNIX only package, it's for managing passwords.

  2. The package you are trying to install is daemon, which is an un-maintained package from 2014. There is a more recent package called python-daemon, which is well maintained and used for implementing daemons in UNIX systems. It also works with python3. Though again, this will not work on windows.

  3. If you're writing an application yourself and want to do this on windows you need to install it as a service, not a daemon this stackoverflow post is old, but still relevant.

Upvotes: 4

Related Questions