对于开发工作流来说,能够在本地环境中构建和安装最新版本的包是非常有用的。然后,您可以通过将此最新版本导入Pythonshell或Jupyter笔记本,以交互方式进行验证和调试。问题是我最近接受了诗歌,现在不知道该怎么做。所以
如何使用poem将当前工作目录中最新版本的包安装到我的本地环境中?
以前,我总是使用setuptools
,它工作得很好。我会在存储库的根目录中放一个setup.py
文件,为项目创建一个虚拟环境(比方说使用conda
),然后…
pip install -e .
从这里开始,我可以启动一个python shell,甚至配置一个jupyter内核来使用这个虚拟环境,我总是可以使用最新版本的包进行交互。
现在setuptools
有其局限性,此后我们转向了Poetry,以更严格地控制依赖关系并处理更复杂的构建需求等。
如果你查一下诗歌
中的pip install -e .
等价物是什么,你会发现这个问题。看起来诗歌
的创作者认为直接从源代码安装是一个黑客攻击,并且没有兴趣支持它。(顺便说一句:我尝试过诗歌构建
,然后像他建议的那样拉出 setup.py
文件,但它不起作用)
直接链接到源代码不是必需的,我愿意运行安装命令来获取最新版本的软件包。当我用诗歌
来做这件事时,它似乎奏效了。
cd root/of/my/project
poetry install
Installing dependencies from lock file
No dependencies to install or update
Installing the current project: my-project (0.4.8) <-- this is the latest version according to the source code in the working directory
问题是,如果我打开一个Python shell并尝试导入我的软件包,例如,它会链接到从远程工件存储库(通过pip install my-软件包)安装的软件包
的最后一个版本 - 而不是我的工作目录中的内容。
python
...
>>> import my_package
>>> my_package.__version__
'0.4.7`
现在,即使我使用诗歌
,我也使用conda
环境为我的项目指定Python版本,然后从里面安装和使用诗歌
。
source activate my-package
(my-package) ... $ poetry update
我还知道< code > poems (不太透明)可以代表你创建和管理自己的虚拟环境。我想这不起作用的原因可能是因为我需要在这个环境中(而我只在我的< code>conda环境中,而< code > poem 正在它管理的虚拟环境中安装我的包的< code>0.4.8版本)。
我尝试了 shell
和 运行
来测试一下。我得到同样的结果。
poetry shell
Virtual environment already activated: /Users/U6020643/.conda/envs/my-package
Python 3.8.5
...
>>> import my_package
>>> my_package.__version__
'0.4.7`
什么给你?
我解决这个问题的方法是:我停止使用conda
来管理涉及诗歌
的项目的Python版本,而是使用pyenv
。
下面是我是如何做到这一点的。这很有帮助!
这涉及从~/.bash_profile
中删除conda碱基激活
。
现在打开一个新的shell并验证没有< code>conda环境前缀,例如< code>(base)...$。
已经有一段时间了,自从我与Homebrew互动以来,已经进行了一两次操作系统升级。需要做一些家政服务。
brew cleanup # This made it so that brew update didn't take forever
brew update
brew upgrade
brew cleanup
然后。。。
brew install pyenv
假设你需要/想要Python 3。
pyenv install 3.8.5
cd your/project/root/
pyenv local 3.8.5
请参见此处。
现在安装并使用shell。检查版本-
cd your/project/root
poetry install
poetry shell
my_package --version # Package has a CLI.
我必须下载一个git python回购和安装,因为pypi版本不更新。 通常我会这样做: 现在,我已将回购克隆到以下文件夹中: /opt/mypackage 那么,我如何运行来安装下面的不是使用pypi版本而是本地版本呢? 有可用的pip标志,我不知道如何实现:
我在我的旧笔记本电脑上设置了一个项目,在我的本地安装了Postgresql,并使用诗歌作为包管理器。现在我搬进了另一台笔记本电脑。在这台笔记本电脑上,我想使用Docker的Postgres,所以我没有安装它。但是当我运行从文件设置项目时,它无法安装带有错误: 正如我搜索的那样,它需要在本地安装Postgres。那么,如何使用Docker的Postgres从锁文件安装Psycopg2?
我从Git存储库下载了一个简单的项目,并在Intellij中打开了它。几个导入语句以红色突出显示,表示“无法解析符号”无法解析的包有:zaxxer、springframework。 通常在Perl或Python中,我会启动像CPAN这样的依赖关系管理器并简单地安装它们,但我的理解是,在Java中实际上没有这样的东西,依赖关系是在某种程度上按项目来解决的。 我安装了Maven 3,我的项目有一个po
好的,所以任何回答的人请注意,我是一个完整的初学者,所有这些。但是我已经安装了jdk1.8.0,因为这是Android Studio的最新版本所需要的,但是当我打开Android Studio时,它说我仍然需要改变它。所以经过大量的研究,我做了一个新的Java_Home变量,并将目录设置为我的jdk文件所在的位置。然后我进入android Studio文件,项目结构,然后改变了jdk目录。然而,当
我试图编译FFMPEG与我的Android应用程序。我已经查看了:https://github.com/halfninja/android-ffmpeg-x264,这几乎是我想要的,但我需要FFMPEG的更新版本(所以我尝试使用最新的2.2)。 我正在使用那里的大部分脚本,但问题是在运行compile_make_everything.sh之后,我试图运行ndk-build,但我得到了错误(基本上它
问题内容: 我的雇主有一个专用模块1,我们用于内部单元/系统测试;但是,该模块的作者不再在这里工作,并且要求我使用它来测试某些设备。 问题在于,该版本需要(v8.2.0)的较旧版本,并且需要导入33个不同的文件中。我试过在v11.0.0下运行单元测试,甚至看不到TCP SYN数据包2。不幸的是,我已经在我的实验室linux服务器上安装了Twisted v11.0.0 ,并且我有依赖于它的代码。 我