两者之间是否有任何显着差异
pip install -e /path/to/mypackage
Run Code Online (Sandbox Code Playgroud)
和setuptools变种?
python /path/to/mypackage/setup.py develop
Run Code Online (Sandbox Code Playgroud) 我正在尝试从特定目录导入模块.
问题是,如果我使用sys.path.append(mod_directory)附加路径然后打开python解释器,该目录mod_directory将添加到列表sys.path的末尾.如果我PYTHONPATH在打开python解释器之前导出变量,则该目录将添加到列表的开头.在后一种情况下,我可以导入模块,但在前者,我不能.
有人可以解释为什么会这样,并给我一个解决方案mod_directory,在 python脚本中添加到开头?
编辑:基于Ulf Rompe的注释,重要的是你使用"1"代替"0",否则你将破坏sys.path.
我已经做了很长一段时间的python(超过一年),我总是很困惑,为什么人们建议你使用sys.path.append()而不是sys.path.insert().让我来证明一下.
假设我正在开发一个名为PyWorkbooks的模块(安装在我的计算机上),但我同时处理一个包含PyWorkbooks的不同模块(比方说PyJob).当我正在使用PyJob时,我发现PyWorkbooks中的错误正在纠正,所以我想导入一个开发版本.
有两种方法可以同时工作(例如,我可以将PyWorkbooks项目放在PyJob中),但有时我仍然需要使用路径.但是,我不能简单地对sys.path.append()PyWorkbooks所在的文件夹执行操作.为什么?因为python会首先找到我安装的PyWorkbooks!
这就是你必须做一个sys.path.insert(1,path_to_dev_pyworkbooks)的原因
综上所述:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
Run Code Online (Sandbox Code Playgroud)
要么:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
Run Code Online (Sandbox Code Playgroud)
这对我来说已经引起了一些困扰,如果我们(作为一个社区)开始推荐sys.path.insert(1, path),我真的很喜欢它,好像你是手动插入一条路径我认为可以说这是你想要的路径用!
或者我有什么不对劲?这个问题有时会困扰我,我希望它在公开场合!
我正在尝试使用下面的导入命令导入Keras lib代码以执行CRF,但是出现标题为error的错误。请为此共享解决方案。
用于执行的命令是
from keras_contrib.layers import CRF
Run Code Online (Sandbox Code Playgroud)
追溯(最近一次通话):
从keras_contrib.layers中的文件“”,第1行,导入CRF
ImportError:没有名为“ keras_contrib”的模块
我在先前运行Python 2.6的SLES 11盒子上安装了Python 2.7.为此,我使用了本文中描述的脚本并以root用户身份运行它.一切顺利,但一旦完成,我发现了一些问题:
/opt/python2.7/binImportError: No module named pkg_resources PS关注@user建议我尝试添加从sys.pathroot用户获取的以下路径.bashrc,但没有解决问题
export PYTHONPATH=$PYTHONPATH:/opt/python2.7/lib/python27.zip:/opt/python2.7/lib/python2.7:/opt/python2.7/lib/python2.7/plat-linux2:/opt/python2.7/lib/python2.7/lib-tk:/opt/python2.7/lib/python2.7/lib-old:/opt/python2.7/lib/python2.7/lib-dynload:/opt/python2.7/lib/python2.7/site-packages:/opt/python2.7/lib/python2.7/site-packages/PyYAML-3.11-py2.7-linux-x86_64.egg:/opt/python2.7/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg:/opt/python2.7/lib/python2.7/site-packages/ptyprocess-0.5.1-py2.7.egg
Run Code Online (Sandbox Code Playgroud) 我想从python程序中访问$ PATH变量.到目前为止我的理解是sys.path给出了Python模块的搜索路径,但我想要的是$ PATH环境变量.有没有办法从Python中访问它?
为了给出更多背景知识,我最终想要做的是找出用户安装了Package_X /的位置,这样我就可以在Package_X /中找到html文件的绝对路径.如果这是一个不好的做法,或者有更好的方法来实现这一点,我将不胜感激任何建议.谢谢!
python ×5
pip ×2
pythonpath ×2
bash ×1
filesystems ×1
installation ×1
mechanize ×1
path ×1
python-2.7 ×1
setuptools ×1
sys ×1