正如标题所述,我可以使用setup吗。用pipenv和pyenv管理我的环境、版本和依赖项?
我有一个带有设置的目录结构形式的python包。py文件。
我喜欢使用pibinv作为我的项目环境管理器 - 我使用pyenv来管理我的多个python版本。
所以我想做的是:
pyenv版本3.8.5
pipenv install foobar
Installing foobar…
Error: An error occurred while installing foobar!
Error text:
ERROR: Could not find a version that satisfies the requirement foobar (from -r /var/folders/2d/f68m9g153v9cywvjn16hs6nc0000gn/T/pipenv-4uv_ikyt-requirements/pipenv-asuqkc7y-requirement.txt (line 1)) (from versions: none)
ERROR: No matching distribution found for foobar (from -r /var/folders/2d/f68m9g153v9cywvjn16hs6nc0000gn/T/pipenv-4uv_ikyt-requirements/pipenv-asuqkc7y-requirement.txt (line 1))
✘ Installation Failed
不知所措。
我不使用pyenv,但原理是一样的:您有一个可本地安装的包(使用setup . py ), Pipenv通过它的< code>install命令支持这些包,它称它们为可编辑的依赖项。
您可以告诉Pipenv将路径安装为可编辑的-在处理包时,这通常对当前工作目录很有用:
$ pipenv install --dev -e .
$ cat Pipfile
...
[dev-packages]
"e1839a8" = {path = ".", editable = true}
...
让我们从库
文件夹中获取您的 foobar
:
libraries$ tree
.
├── foobar
│ └── __init__.py
└── setup.py
要使用< code>pipenv将它安装到其他虚拟环境中:
myapp$ pipenv install -e /path/to/libraries
...
Installing -e /path/to/libraries...
Adding foobar to Pipfile's [packages]...
✔ Installation Succeeded
myapp$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
foobar = {editable = true, path = "/path/to/libraries"}
[dev-packages]
[requires]
python_version = "3.9"
myapp$ pipenv shell
(myapp) myapp$ python
>>> import foobar
>>> foobar.add(1,2)
3
请注意,您不需要使用< code > python setup . py install 或< code>pip install安装软件包。。这里的好处是,如果您现在编辑< code>foobar代码,它会反映在其他环境中,而无需重复< code>pipenv install。
通过运行
python setup.py install
将不起作用,因为这不是正确的流程。您准备 foobar
以进行分发,然后从分发版(而不是从站点包)安装它,站点包已经是已安装的版本(没有 setup.py)。你可以通过将整个 foobar
包复制到你的 pyenv
的站点包文件夹(包括 setup.py)来解决这个问题,然后告诉 pipenv
从那里安装它。但这不是正确的流程。
如果你想测试你的实际源代码分布,那么pibinv安装-e
的替代方法是实际构建foobar
的源代码分发,然后从中安装pibinv
。
libraries$ python3.8 setup.py sdist
...
Creating tar archive
...
libraries$ tree
.
...
├── dist
│ ├── foobar-0.1.0-py3.8.egg
│ └── foobar-0.1.0.tar.gz
├── foobar
│ └── __init__.py
├── ...
└── setup.py
(myapp) myapp$ pipenv install /path/to/libraries/dist/foobar-0.1.0.tar.gz
Installing /path/to/libraries/dist/foobar-0.1.0.tar.gz...
(myapp) myapp$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
foobar = {path = "/path/to/libraries/dist/foobar-0.1.0.tar.gz"}
[dev-packages]
[requires]
python_version = "3.9"
但是,从sdist
安装会失去在其他html" target="_blank">应用程序上使用它时快速查看foobar
更新的便利性。我不知道你的工作流程是什么,但我更喜欢有一个通用的目录(库
),而不是存储所有本地可编辑的软件包,然后从那里进行pibinv安装
。
问题内容: 如果量角器正在替换Angular Scenario Runner进行E2E测试,这是否意味着我仍然可以将其与Karma一起用作我的E2E测试框架? 问题答案: 分度器的当前维护者不建议使用: https://github.com/angular/protractor/issues/9#issuecomment-19927049 量角器和业力不应一起使用;而是为运行测试提供了单独的系统。
问题内容: 我想在我的node.js脚本中使用phantomjs。有一个phantomjs- node 库。.但是不幸的是,作者使用了这个奇怪的coffee脚本代码来解释他在做什么: 现在,如果我直接将phantomjs与javascript一起使用,它将看起来像这样: 所以基本上我想用普通的javascript编写上面代码的第一段代码(通过阅读coffee脚本文档 ..这就是我所做的: 不幸的是
我在官方留档中找不到任何信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significanttext-aggregation.html 问题是,我试图在应用了带状图过滤器/分析器的“多字段”()上聚合重要术语: 我得到了空桶: 多字段定义:
我在两台服务器上使用带有兵马俑的分布式ehcache。在我的缓存管理器中,我有多个缓存。但是现在我有一个要求,每当一个元素被添加到1个服务器上的1个特定缓存中时,我都希望得到第二个服务器上的通知。我尝试使用缓存事件通知程序,但这可以在本地工作。你能不能帮我弄清楚我能做什么。我是否可以将复制机制与 terracotta 一起使用来解决此问题,因为通过在 1 个缓存上使用复制,我将在其他服务器上获取该
问题内容: 是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作? 问题答案: 似乎有一个重大更新,导致原来的答案不再起作用。我找到了这个答案,解释了现在如何使用。我已经在下面复制了相关代码。 注意:原始答案没有提及你还需要使用安装
我需要一些目前在JavaFX中找不到的功能。比如机器人或托盘图标。 我知道这些工具确实适用于JavaFx应用程序。但是可以使用它们吗?有什么需要我考虑的吗?