<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>poetry &#8211; 天地一沙鸥</title>
	<atom:link href="https://haoluobo.com/tag/poetry/feed/" rel="self" type="application/rss+xml" />
	<link>https://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Wed, 18 Oct 2023 01:06:19 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Vim下Python（Poetry）环境的设置</title>
		<link>https://haoluobo.com/2023/10/vim-python-poetry/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Tue, 17 Oct 2023 13:05:00 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[direnv]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">https://haoluobo.com/?p=12482</guid>

					<description><![CDATA[近期迁移到了 Neovim 。在 Pyright 的加持下，vim的代码补全和错误校验功能已经很接近 IDE  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>近期迁移到了 Neovim 。在 Pyright 的加持下，vim的代码补全和错误校验功能已经很接近 IDE 了。在未正确配置 Python 环境的情况下打开 Python 项目，项目里一堆的告警让人很不舒服。</p>



<p>在 vim 中编辑 Python，重要的是 PYTHONPATH 的设置。正确设置 PYTHONPATH 后，Pyright 可以正确的查找到相关的依赖库。我目前的解决方案是使用 <a rel="noreferrer noopener" href="https://direnv.net/" data-type="link" data-id="https://direnv.net/" target="_blank">direnv</a> 。</p>



<h2 class="wp-block-heading">编辑 direnv 通用配置，添加 poetry 初始化函数。</h2>



<pre class="wp-block-code"><code>vim $HOME/.direnvrc</code></pre>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
layout_poetry() {
  if &#x5B;&#x5B; ! -f pyproject.toml ]]; then
    log_error &#039;No pyproject.toml found.  Use `poetry new` or `poetry init` to create one first.&#039;
    exit 2
  fi

  local VENV=$(dirname $(poetry run which python))
  export VIRTUAL_ENV=$(echo &quot;$VENV&quot; | rev | cut -d&#039;/&#039; -f2- | rev)
  export POETRY_ACTIVE=1
  PATH_add &quot;$VENV&quot;
}
</pre></div>


<h2 class="wp-block-heading">在 python 项目中添加 direnv 设置</h2>



<pre class="wp-block-code"><code>vim .envrc</code></pre>



<pre class="wp-block-code"><code># 进入 Poetry 环境
layout_poetry
# 设置 PYTHONPATH
export PYTHONPATH="`pwd`/vendor/Model1:`pwd`/vendor/Model2"</code></pre>



<p>在设置好 direnv 后，在 CLI 下进入目录时将设置好环境变量。CLI 下进入对应的项目目录，然后启动 vim/neovim ，Pyright即可正确的找到相关依赖。</p>



<h2 class="wp-block-heading">参考：</h2>



<ul class="wp-block-list">
<li><a href="https://rgoswami.me/posts/poetry-direnv/" data-type="link" data-id="https://rgoswami.me/posts/poetry-direnv/" target="_blank" rel="noreferrer noopener">Poetry and Direnv</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
