<p>对不起,我不能复制这个</p>
<p>我运行了以下代码:</p>
<pre class="lang-py prettyprint-override"><code>from azure.storage.fileshare import ShareDirectoryClient
detailedFileURI = "Something"
shrdDirClient = ShareDirectoryClient.from_directory_url(detailedFileURI,snapshot=None, credential=None)
</code></pre>
<p>它生成了以下错误:</p>
<pre class="lang-none prettyprint-override"><code>Traceback (most recent call last):
File "D:\StackOverflow\azure_storage_test.py", line 4, in <module>
shrdDirClient = ShareDirectoryClient.from_directory_url(detailedFileURI,snapshot=None, credential=None)
File "C:\Python37\lib\site-packages\azure\storage\fileshare\_directory_client.py", line 164, in from_directory_url
credential=credential, **kwargs)
File "C:\Python37\lib\site-packages\azure\storage\fileshare\_directory_client.py", line 96, in __init__
raise ValueError("Please specify a share name.")
ValueError: Please specify a share name.
</code></pre>
<p>现在很明显,这不是成功的执行。老实说,我不知道把<code>detailedFileURI</code>设为什么。但这不是重点。关键是上面的代码示例足以证明我可以使用<code>from_directory_url</code>方法,这在回溯中是清楚的</p>
<p>但是,如果我运行以下代码:</p>
<pre class="lang-py prettyprint-override"><code>from azure.storage.fileshare import ShareDirectoryClient
ShareDirectoryClient = "some string"
detailedFileURI = "Something"
shrdDirClient = ShareDirectoryClient.from_directory_url(detailedFileURI,snapshot=None, credential=None)
</code></pre>
<p>那么我确实遇到了同样的错误:</p>
<pre class="lang-none prettyprint-override"><code>Traceback (most recent call last):
File "D:\StackOverflow\azure_storage_test.py", line 5, in <module>
shrdDirClient = ShareDirectoryClient.from_directory_url(detailedFileURI,snapshot=None, credential=None)
AttributeError: 'str' object has no attribute 'from_directory_url'
</code></pre>
<p>当然,如果要为<code>ShareDirectoryClient</code>分配一个字符串,那么导入它就没有什么意义了。您还可以删除<code>import</code>语句。但是,这样做会复制错误消息。在您的问题中没有任何进一步的代码的情况下,我只能得出结论,您的代码与此相同,尽管可能更微妙</p>
<p>我唯一的另一个建议是,您安装的<code>azure-storage-file-share</code>包不知怎的坏了。如果运行只包含以下两行的Python脚本,则应将<code><class 'type'></code>或<code><class 'str'></code>作为输出。我得到<code><class 'type'></code>,我希望其他使用这个包的人也会得到同样的结果。但是,如果您得到<code><class 'str'></code>,则可能是程序包已损坏,您可能希望尝试重新安装它</p>
<pre class="lang-py prettyprint-override"><code>from azure.storage.fileshare import ShareDirectoryClient
print(type(ShareDirectoryClient))
</code></pre>