- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想重新审视 PYTHONPATH vs. sys.path 中指定的问题。基本上它涉及开发一个包,例如:
Project
setup.py
package
__init__.py
lib.py
script.py
假设script.py
确实from package.lib import foo
它在调用时确实有效:
python -m package.script
来自 setup.py
所在的目录,但不在调用时(在 Windows 上,CPython 2.7):
.\package\script.py
ImportError: No module named package
在第一种情况下,打印 sys.path
时,第一个条目是 ''
,但在第二种情况下,第一个条目是 script.py 所在位置的绝对路径
正在坐着。当然,在这种情况下,它不知道有关 package
的任何信息,并且导入失败。在资源管理器中双击时也会出现这种情况。
original stackoverflow question建议通过setup.pydevelop
安装包。然而,在当前setuptools 3.5 (我知道+对 distutils/setuptools 重命名感到困惑)这个选项甚至没有记录(我有 setuptools 3.4.x,但没有尝试)。
任何人都可以向我指出推荐的(“......唯一明显的方法......”)程序在 Windows 上(对于 CPython 2.7 但也考虑到 Python 3)双击文件并使其工作。相对进口?
最佳答案
现在更好的方法是使用带有 -e 选项的 pip install。
pip install -e .
它使用带有 setup.py 文件的目录。这 ”。”表示该目录。这与 setuptools 开发方法的工作方式相同。
我相信开发会在您的sight包文件夹中创建一个egg链接,该链接指向库的文件夹。 http://pythonhosted.org/setuptools/setuptools.html#develop-deploy-the-project-source-in-development-mode
python setup.py develop
我相信这就是你获得绝对路径的原因。开发链接和安装可能存在冲突。东西也可以被移动。
对于双击,只需检查 sys.argv 即可。如果 sys.argv[1] 没有值,请附加构建、安装或开发。
此外,我一直听说您想要导入模块,然后从模块中调用函数。从包导入库。 lib.foo() 这样你就知道该方法来自哪里。我相信导入对两种方式都会做同样的事情;这可能会清理您的导入。 Python 路径和打包可能很痛苦。
from package import lib
lib.foo()
关于PYTHONPATH 与 sys.path(重新加载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23564225/
如何在 Geany 中添加新的 pythonpath?我在偏好设置/选项中缺少某些内容吗?我尝试将其添加到 .bashrc 中,但没有成功。 export PYTHONPATH=/mypath 我现在
我需要向我的 PYTHONPATH 添加一个新的目录位置,但问题是我在一个干净的新安装的系统 (Linux) 上,其中没有 PYTHONPATH尚未定义。我已经阅读并使用了 PYTHONPATH,我认
我有以下情况(通过以下命令验证): x 目录下已有 python 脚本文件 现有的 python 猫__init__.py归档在x x 添加到 PYTHONPATH登录用户和 sudo 均可用的变量
将该行放入 .bashrc(Mac 上为 .profile)中,工作目录位于该路径上。别管它,它不是。 export PYTHONPATH=$PYTHONPATH 我注意到带有该行的 shell 在其
我对 PyCharm 如何确定 Python 用于定位模块和包的路径感到困惑。 首先,当我取消选中设置时(在“Python 控制台”和我的运行配置中),我仍然在 sys.path 开头看到我的项目目录
标题真的说明了一切。当我运行脚本 ( ModuleNotFoundError: No module named ) 时,我的 PYTHONPATH 中的文件无法识别,但是当我在命令行中打开交互式提示
我想设置pythonpath,但它不适用于其他目录。 我的 bashrc: 导出 PYTHONPATH=/usr/lib/python2.7 导出 PYTHONPATH=$PYTHONPATH/pla
根据documentation , sys.path 在 Python 解释器 session 启动时从 PYTHONPATH 初始化。但是,就我而言,PYTHONPATH 变量为空。当我在终端中执行
我是一个长期的潜伏者,第一次发帖所以请保持温柔。 我已经使用 Python 几个月了,我一直在尝试安装一个名为 heatmap 的库。具体this fork .通过 zip 文件安装后,我可以很好地导
请帮助我理解这一点。在这里你可以看到我设置了 PYTHONPATH(它来 self 的 .bashrc) jean@klippie:~$ echo $PYTHONPATH :/home/jean/lo
环境:debian 4.0 python 2.4 我的“项目”安装在: /usr/lib/python2.4/site-packages/project. 但我想使用我的工作副本而不是位于以下位置的已
我正在考虑类似的事情 python3 my_script.py --pythonpath/path/to/some/necessary/modules 有这样的事情吗?我知道(我认为)Pycharm
关于 PYTHONPATH 和导入有很多类似的问题,但我没有找到我所需要的。 我有一个 git 存储库,其中包含一些 python 帮助程序脚本。这些脚本自然地组织在几个包中。像这样的东西: scri
我有一组脚本,它们是使用特定的 python 安装执行的(用第一行 # 设置!)。网络上有一些不同的 python 安装,不同的组有自己的设置和工作流程。一些组织指示人们在 shell 登录中修改 P
我一直在尝试按照这篇文章 Permanently add a directory to PYTHONPATH 上的建议将自定义目录添加到 PYTHONPATH .如果相关的话,我在 Mac 上使用 b
我正在运行一个显式设置 PYTHONPATH 以避免命名冲突的脚本。然而,即使我说 os.environ['PYTHONPATH'] = '',看起来系统仍然能够找到我在脚本之外“存在”的旧路径。 即
正在尝试运行 runsnake给 ImportError: No module named wx 打开 ipython 或 python session 似乎工作正常: >>> import wx >
我试图列出新安装的 Xubuntu 12.04 中已安装的软件包: for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done
我正在和我的团队一起开发几个不同的 Python 包。假设我们有 ~/src/pkg1、~/src/pkg2 和 ~/src/pkg3。我们如何将这些添加到 PYTHONPATH 而无需我们每个人都管
我知道我可以让 Python 忽略 PYTHONPATH 如果我用 -E 标志启动它。 但是如何让 pip 安装的脚本有这个标志? 我尝试了代码的“脚本”和“console_scripts”部分,如果
我是一名优秀的程序员,十分优秀!