相关疑难解决方法(0)

ImportError:没有名为'encodings'的模块

我最近重新安装了ubuntu并升级到16.04并且无法使用python:

$ python manage.py runserver
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted
Run Code Online (Sandbox Code Playgroud)

此时,python本身不起作用

$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted
Run Code Online (Sandbox Code Playgroud)

即使这个建议不再有效:

unset …
Run Code Online (Sandbox Code Playgroud)

python development-environment virtualenv python-3.x macos-catalina

83
推荐指数
6
解决办法
14万
查看次数

返回脚本中使用的导入Python模块列表?

我正在编写一个程序,用于对导入模块的Python文件列表进行分类.因此,我需要扫描.py文件的集合,并返回它们导入的模块的列表.例如,如果我导入的其中一个文件包含以下行:

import os
import sys, gtk
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

["os", "sys", "gtk"]
Run Code Online (Sandbox Code Playgroud)

我玩modulefinder并写道:

from modulefinder import ModuleFinder

finder = ModuleFinder()
finder.run_script('testscript.py')

print 'Loaded modules:'
for name, mod in finder.modules.iteritems():
    print '%s ' % name,
Run Code Online (Sandbox Code Playgroud)

但这不仅仅返回脚本中使用的模块.作为脚本中的一个例子,它只包含:

import os
print os.getenv('USERNAME')
Run Code Online (Sandbox Code Playgroud)

从ModuleFinder脚本返回的模块返回:

tokenize  heapq  __future__  copy_reg  sre_compile  _collections  cStringIO  _sre  functools  random  cPickle  __builtin__  subprocess  cmd  gc  __main__  operator  array  select  _heapq  _threading_local  abc  _bisect  posixpath  _random  os2emxpath  tempfile  errno  pprint  binascii  token  sre_constants  re  _abcoll  collections  ntpath  threading  opcode  _struct  _warnings  math  shlex …
Run Code Online (Sandbox Code Playgroud)

python module

28
推荐指数
4
解决办法
3万
查看次数

pip -e:没有神奇的下划线替换

如果使用带有"pip install -e ..."的git repo进行安装,则某些下划线会变为破折号.

有没有办法阻止这个?

我想自动化东西.我想要回购foo_bar,而~/src/foo_bar不是~/src/foo-bar.

python pip virtualenv

19
推荐指数
1
解决办法
4747
查看次数